Pergunta
top.on('click', function(){
anim.run();
});
Eu tenho uma função anim, e queria saber por que eu não posso chamá-lo assim
top.on('click', anim.run);
Solução
top.on('click', function () { anim.run(); });
ou
top.on('click', Y.bind(anim.run, anim));
Outras dicas
Porque this
não é anim
no segundo caso, como você está recuperando a função run
e não chamá-lo de anim
.
Por exemplo:
var a = {
b: function () {
return this.c;
},
c: 1
},
c = 2;
a.b() === 1;
var bMethod = a.b;
bMethod() === 2;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow