توابع Apply در JavaScript
- صفحه قبلی تابع Call JS
- صفحه بعدی بستن تابع JS
روشها
از طریق apply()
میتوانید روشهایی برای اشیاء مختلف بنویسید.
روش apply() در JavaScript
apply()
روشها با call()
روشها بسیار مشابه هستند:
در این مثال،person
از fullName
روش به ناماعمالبه person1
:
مثال
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName: "Bill", lastName: "Gates", } person.fullName.apply(person1); // بازمیگردد به "Bill Gates"
تفاوت call() و apply()
تفاوتها در:
call()
روشی که پارامترها را جداگانه میپذیرد.
apply()
روشی که پارامترها را به صورت آرایه میپذیرد.
اگر بخواهید از آرایه استفاده کنید به جای لیست پارامترها، apply()
این روش بسیار راحت است.
روش apply() با پارامترهای موجود
apply()
روشی که پارامترها را در قالب آرایه میپذیرد:
مثال
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:\"Bill\", lastName: "Gates" } person.fullName.apply(person1, ["Oslo", "Norway"]);
و call()
مقایسه روش:
مثال
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:\"Bill\", lastName: "Gates" } person.fullName.call(person1, "Oslo", "Norway");
روش max را بر روی آرایهها شبیهسازی کنید
میتوانید از Math.max()
تابع به بزرگترین عدد (در لیست اعداد) دسترسی پیدا میکند:
مثال
Math.max(1,2,3); // نیز 3 را برمیگرداند
به دلیل اینکه آرایههای JavaScript تابع max() ندارند، میتوانید از Math.max()
تابع.
مثال
Math.max.apply(null, [1,2,3]); // نیز 3 را برمیگرداند
پارامتر اول (null) مهم نیست. در این مثال استفاده نشده است.
این مثالها نتایج مشابهی را نشان میدهند:
مثال
Math.max.apply(Math, [1,2,3]); // نیز 3 را برمیگرداند
مثال
Math.max.apply(" ", [1,2,3]); // نیز 3 را برمیگرداند
مثال
Math.max.apply(0, [1,2,3]); // نیز 3 را برمیگرداند
حالت سختگیرانه JavaScript
در حالت سختگیرانه JavaScript، اگر apply()
اگر اولین پارامتر روش، شیء نیست، آنگاه آن خواهد شد مالک تمامی تابع فراخوانی شده (شیء). در حالت "غیرقابل اعتماد"، آن خواهد شد شیء جهانی.
- صفحه قبلی تابع Call JS
- صفحه بعدی بستن تابع JS