Используйте fn.call()
или fn.apply()
, чтобы установить желаемое значение this
.См. Ссылки для , звоните или , применяйте в MDN.
addEvent('mybutton','touchstart', function(){
if(window['touchmoved']==false) {
hover.call(this);
}
});
И .call()
, и .apply()
позволяют указать, что вы хотите, указатель this
быть в вызываемой функции.
.call()
позволяет вам передавать конкретные дополнительные аргументы, которые вы хотите, чтобы вызываемая функция получала следующим образом:
fn.call(this, true, "foo")`
.apply()
используется, когда аргументы, которые вы хотите передать вызываемомуФункция находится в массиве, и вы просто передаете массив аргументов следующим образом:
var args = [true, "foo"];
fn.apply(this, args);
.apply()
часто используется со встроенным объектом аргументов для передачи существующих аргументов вызываемой функции (хотяЕсть и другие причины, чтобы использовать его тоже):
fn.apply(this, arguments);