Вопрос
top.on('click', function(){
anim.run();
});
У меня есть функция anim, и мне было интересно, почему я не могу вызвать ее вот так
top.on('click', anim.run);
Решение
top.on('click', function () { anim.run(); });
или
top.on('click', Y.bind(anim.run, anim));
Другие советы
Потому что this
не является anim
во втором случае, так как вы извлекаете функцию run
и не вызываете ее из anim код>.
Например:
var a = {
b: function () {
return this.c;
},
c: 1
},
c = 2;
a.b() === 1;
var bMethod = a.b;
bMethod() === 2;
Не связан с StackOverflow