יול.05

מה הבדל בין Apply, Call ,Bind ב Javascript

מה הבדל בין Apply, Call ,Bind ב Javascript

מה הבדל בין Apply, Call ,Bind ב Javascript

כל המתודות האלה משנים this של פונקציה הנוכחית.

Apply ו Call דומים. כאשר Apply  מקבל מערך ו Call מאפשר להעביר פרמטרים מופרדים ע''י פסיק. הם ישר מבצעים את הפונקציה.

Bind - מייצר פונקציה חדשה וגם מאפשר להעביר פרמטרים.

  1. var person1 = {firstName: 'Maria', lastName: 'Butusov'};
  2. var person2 = {firstName: 'Jhon', lastName: 'Doe'};
  3. function say(greeting) {
  4. console.log(greeting + ' ' + this.firstName + ' ' + this.lastName);
  5. }
  6.  
  7. /*call method*/
  8. say.call(person1, 'Hello'); // Hello Maria Butusov
  9. say.call(person2, 'Hello'); // Hello John Doe
  10.  
  11. /*apply method*/
  12. say.apply(person1, ['Hello']); // Hello Maria Butusov
  13. say.apply(person2, ['Hello']); // Hello John Doe
  14.  
  15. /*bind*/
  16. var sayHelloMaria = say.bind(person1);
  17. var sayHelloJhonDoe = say.bind(person2);
  18. sayHelloMaria(); // Hello Maria Butusov
  19. sayHelloJhonDoe(); // Hello John Doe


תגיות:
שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה