JavaScript فانکشن اپلی

ਮੇਥੋਡ ਮੁੜ-ਵਰਤਾਓ

ਦੁਆਰਾ apply() ਮੇਥੋਡ, ਤੁਸੀਂ ਵੱਖ-ਵੱਖ ਆਬਜੈਕਟਾਂ ਲਈ ਮੇਥੋਡ ਲਿਖ ਸਕਦੇ ਹੋ

JavaScript apply() ਮੇਥੋਡ

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() اگر اولین پارامتر روش (آبجکت) نیست، آن خواهد شد مالک فانکشنی که فراخوانی می‌شود (آبجکت). در حالت "غیر سختگیرانه"، آن به آبجکت جهانی تبدیل می‌شود.