با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
در این جلسه قصد داریم تا با تابع apply در جاوا اسکریپت JavaScript و تفاوت متد های ()call و ()apply در جاوا اسکریپت
آشنا شویم.
با استفاده از تابع ()apply می توانید توابعی بنویسید که روی اشیا مختلف استفاده شود.
این تابع مشابه تابع call می باشد که در جلسه قبل راجع به آن توضیح دادیم.
در مثال زیر متد fullName از شی person را بر روی شی person1 اجرا کرده ایم:
1 2 3 4 5 6 7 8 9 10 | 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 آرگومان ها را به صورت آرایه در یافت می کند.
در مثال زیر از مند ()apply با آرگومان استفاده کرده ایم:
1 2 3 4 5 6 7 8 9 10 | 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 :
1 2 3 4 5 6 7 8 9 10 | 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 بدست آورید:
اما برای آرایه ها در جاوا اسکریپت نمی توانیم این طور از این تابع استفاده کنیم.
برای اجرای تابع max بر روی آرایه در جاوا اسکریپت به شکل زیر عمل می کنیم:
1 | Math.max.apply(null, [1,2,3]); // Will also return 3 |
آرگومان null در کد بالا مهم نیست.
مثال های زیر نیز مانند مثال بالا عمل می کند:
1 | Math.max.apply(Math, [1,2,3]); // Will also return 3 |
1 | Math.max.apply(" ", [1,2,3]); // Will also return 3 |
1 | Math.max.apply(0, [1,2,3]); // Will also return 3 |
جلسه کار با تابع apply در جاوا اسکریپت JavaScript نیز به پایان رسید.
در جلسه بعد به آموزش Closure در جاوا اسکریپت خواهیم پرداخت. با ما همراه باشید.