پرشین تم مقالات وراثت تابع و تابع currying در جاوااسکریپت

وراثت تابع و تابع currying در جاوااسکریپت

image profile پرشین تم - 27 آبان 1403 - 15:03 دانلود مقاله

ما در این مقاله دو مورد از ویژگی های توابع جاوااسکریپت را با هم بررسی می کنیم . ویژگی واثت تابع و تابع currying که انعطاف پذیری بیشتری به توابع جاوااسکریپت می افزایند.

وراثت تابع و تابع currying در جاوااسکریپت

وراثت تابعی چیست؟

وراثت تابعی فرآیند به ارث بردن ویژگی ها با اعمال یک تابع تقویت کننده به یک نمونه شی است. این تابع یک محدوده بسته را ارائه می دهد که می توانید از آن برای خصوصی نگه داشتن برخی از داده ها استفاده کنید. تابع augmenting از پسوند شی پویا برای گسترش نمونه شی با ویژگی ها و روش های جدید استفاده می کند.

میکسین های عملکردی توابع کارخانه ای قابل ترکیب هستند که ویژگی ها و رفتارها را به اشیایی مانند ایستگاه های خط مونتاژ اضافه می کنند.

// Base object constructor function
function Animal(data) {
  var that = {}; // Create an empty object
  that.name = data.name; // Add it a "name" property
  return that; // Return the object
};

// Create achild object, inheriting from the base Animal
function Cat(data) {
  // Create the Animal object
  var that = Animal(data);
  // Extend base object
  that.sayHello = function() {
    return 'Hello, I\'m ' + that.name;
  };
  return that;
};

// Usage
var myCat = Cat({ name: 'Rufi' });
console.log(myCat.sayHello());
// Output: "Hello, I'm Rufi"

 

 

تابع currying چیست؟

تابع currying تابعی است که چندین آرگومان را می گیرد و آن را به دنباله ای از توابع با تنها یک آرگومان در یک زمان تبدیل می کند.

به این ترتیب، یک تابع n-ary تبدیل به یک تابع یکنواخت می شود و آخرین تابع نتیجه همه آرگومان ها را با هم در یک تابع برمی گرداند.

// Normal definition
function multiply(a, b, c) {
    return a * b * c;
};
console.log(multiply(1, 2, 3));
// Output: 6

// Simple curry function definition
function multiply(a) {
    return (b) => {
        return (c) => {
            return a * b * c;
        };
    };
};
console.log(multiply(1)(2)(3));
// Output: 6

 

 

با خرید اشتراک می توانید تا چندین برابر مبلغ خرید اشتراک خود قالب های HTML ، سورس کدهای آماده و یا مقالات دانلود کنید
شما می توانید تنها فقط با مبلغ 3,000,000 میلیون تومان وب سایت سفارسی برای خود داشته باشید
محبوب ترین مقالات
تفاوت بین CSS و SCSS چیست؟ تفاوت بین CSS و SCSS چیست؟
category برنامه نویسی 07 اسفند 1402
تفاوت بین RDBMS و DBMS تفاوت بین RDBMS و DBMS
category برنامه نویسی 02 فروردین 1403
کاوش در معماری GPT-3 کاوش در معماری GPT-3
category هوش مصنوعی 12 اسفند 1402
کلمات کلیدی در SQL کلمات کلیدی در SQL
category برنامه نویسی 01 خرداد 1403
تفاوت بین CSS، SASS و SCSS چیست؟ تفاوت بین CSS، SASS و SCSS چیست؟
category برنامه نویسی 13 اسفند 1402
انواع Join در SQL انواع Join در SQL
category برنامه نویسی 02 فروردین 1403
ChatGPT چیست؟ ChatGPT چیست؟
category هوش مصنوعی 12 اسفند 1402
آخرین مقالات
Redis چیست؟ آموزش استفاده از آن در asp core Redis چیست؟ آموزش استفاده از آن در asp core Redis یک مخزن داده با عملکرد بالا و کلید-مقدار در حافظه است که اغلب برای ذخیره‌سازی موقت (caching)، مدیریت جلسه (sessi...
category برنامه نویسی 27 شهریور 1404
CI-CD در فلاتر چیست؟ CI-CD در فلاتر چیست؟ در توسعه فلاتر، CI/CD مخفف Continuous Integration (ادغام مداوم) و Continuous Delivery/Deployment (تحویل/استقرار مداوم)...
category برنامه نویسی 25 شهریور 1404
🧩 CQRS چیست؟ 🧩 CQRS چیست؟ هرCQRS یک الگوی طراحی نرم‌افزار است که عملیات خواندن (پرس‌وجوها) را از عملیات نوشتن (دستورات) جدا می‌کند. به جای استفا...
category برنامه نویسی 24 شهریور 1404