پرشین تم مقالات وراثت تابع و تابع 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
ChatGPT چیست؟ ChatGPT چیست؟
category هوش مصنوعی 12 اسفند 1402
کاوش در معماری 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
آخرین مقالات
چگونه زمان را مدیریت کنیم - نکاتی برای مدیریت موثر زمان چگونه زمان را مدیریت کنیم - نکاتی برای مدیریت موثر زمان مهم نیست چقدر برای بهره وری کار می کنیم، همیشه به نظر می رسد که کارهای زیادی برای انجام دادن وجود دارد و هیچ وقت در رو...
category عمومی 29 آبان 1403
شش ویژگی مشترک مدیران موفق شش ویژگی مشترک مدیران موفق ممکن است برای هدف بعدی شغلی خود که مدیر شدن است، کار کنید. شما صبورانه منتظر هستید، یا نه چندان صبورانه منتظر رئیستان ...
category عمومی 29 آبان 1403
حال و آینده انرژی های تجدیدپذیر حال و آینده انرژی های تجدیدپذیر به نظر می رسد انرژی های تجدیدپذیر بهترین جایگزین و راه حل پایدار برای رسیدگی به مسائل امنیت انرژی به روش های جدید و پا...
category محیط زیست 28 آبان 1403