‎‎تابع‎apply()‎‎ جاوااسكريپت JavaScript Function apply()‎ -‎

Previous >    <Next  

‎‎استفاده مجدد متدMethod Reuse -‎

‎با متد‎apply( )‎ ميتوان متد نوشته شئي را براي شئ هاي مختلف استفاده ‎نمود.

‎‎مثال ـ دراين مثال متدfullName از person را براي شئ person1 بكار گرفته ايم .

const person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}

const person1 = {
  firstName: "Mary",
  lastName: "Doe"
}

// This will return "Mary Doe":
person.fullName.apply(person1);

--(go to editor for change code and run)

‎‎اختلاف بين‎call( )‎ و ‎apply( )

‎‎اختلاف اين دو مطابق زيراست:

‎‎متد‎call( ) ‎ آرگومان ها را با تفكيك كاما در يافت ميكند .

‎‎اما‎apply ‎ يك آرايه را بعنوان آرگومان در يافت ميكند.

‎اگر بخواهيد بجاي ليست آرگومان از آرايه استفاده كنيد، متد‎apply( )‎ ‎بسيار مفيد است.

‎‎متد‎aplly‎ با آرگومان

‎‎متد‎apply‎ يك آرايه را بعنوان آرگومان مي پذيرد .

‎‎مثال ـ متد‎apply‎ با آرگومان

const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

const person1 = {
  firstName:"John",
  lastName: "Doe"
}

person.fullName.apply(person1, ["Oslo", "Norway"]);

--(go to editor for change code and run)

‎‎مثال ـ همان مثال با‎call()‎‎ كه ميتوانيد مقايسه نمائيد .

const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

const person1 = {
  firstName:"John",
  lastName: "Doe"
}

person.fullName.call(person1, "Oslo", "Norway");

--(go to editor for change code and run)

‎‎شبيه سازي يك متد ماكزيمم روي آرايه ها

‎با استفاده از متد‎Math.max( )‎ ميتوان بزرگترين عدد در ليستي از ‎اعداد را بدست آورد.

‎‎مثال ـ پيدا كردن ماكزيمم با‎Math.max( )

Math.max(1,2,3);  // Will return 3

--(go to editor for change code and run)

‎از آنجائيكه آرايه هاي جاوااسكريپت داراي متد‎max( )‎ نيستند، بجاي آن از اين ‎Math.max( ) ‎‎استفاده ميكنيم .

‎‎مثال ـ پيدا كردن ماكريمم آرايه

Math.max.apply(null, [1,2,3]); // Will also return 3

--(go to editor for change code and run)

‎‎اولين آرگومان‎null‎ است ، مهم نيست چون ازدر اين مثال استفاده نمي شود.

‎‎مثال ـ اين مثال هم نتيجه مشابه مثال فوق دارد

Math.max.apply(Math, [1,2,3]); // Will also return 3

--(go to editor for change code and run)

‎اگر بجاي آرگومان اول ليتراهاي‎‎"‎‎"‎ و ‎0‎ در مثال بالا قرار دهيم نتيجه ‎مشابه است.

‎توجه ـ در حالت سختگيرانه جاوااسكريپت ، اگر اولين آرگومان‎apply( )‎ ‎شئ نباشد، مالك تابع فراخواني شده مي شود .در حالت غيردقيق به شئ جهاني تبديل ميگردد.


Previous >    <Next