Показать сообщение отдельно
  #3 (permalink)  
Старый 15.11.2014, 17:38
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

flexisum(1, 2, 3);
flexisum.call(this, 1, 2, 3);
flexisum.apply(this, [1, 2, 3]);

Все эти три варианта вызова, идентичны. apply этот вызов функции с аргументами, где аргументы перечислены в массиве, в отличии от простых вызовов, где каждый аргумент нужно перечислять.

например:
function test(a, b, c) {
  alert("a: " + a + ", b: " + b + ", c: " + c);
}
test(1, 2, 3); // a: 1, b: 2, c: 3
test.call(this, 1, 2, 3); // a: 1, b: 2, c: 3
test.apply(this, [1, 2, 3]); // a: 1, b: 2, c: 3


Что же такое this? Это контекст в котором выполняется функция, просто вызывая функцию через call/apply контекст является обязательным аргументом, потому и отдается вызывающей функции, текущий контекст области в которой происходит вызов.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием