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