Причина использования метода JS .call ()?

Меня интересует, зачем нужен метод call () в JS. Похоже, он дублирует обычный метод вызова this .

Например, у меня есть код с call ().

var obj = {
    objType: "Dog"
}

f = function(did_what, what) {
    alert(this.objType + " " + did_what + " " + what);
}

f.call(obj, "ate", "food");

Результат: «Собака съела еду». Но тот же результат я могу получить, назначив функцию объекту.

var obj = {
    objType: "Dog"
}

f = function(did_what, what) {
    alert(this.objType + " " + did_what + " " + what);
}

obj.a = f;
obj.a("ate", "food");

Результат тот же. Но этот способ более понятен и удобен в использовании. Зачем нужен call ()?

58
задан Green 25 January 2012 в 11:19
поделиться