YUI3 вызывает функцию - PullRequest
       9

YUI3 вызывает функцию

1 голос
/ 01 декабря 2009
top.on('click', function(){
    anim.run();
});

У меня есть функция anim, и мне было интересно, почему я не могу назвать ее так

top.on('click', anim.run);

Ответы [ 2 ]

4 голосов
/ 02 декабря 2009
top.on('click', function () { anim.run(); });

или

top.on('click', Y.bind(anim.run, anim));
3 голосов
/ 01 декабря 2009

Поскольку this не является anim во втором случае, так как вы извлекаете функцию run и не вызываете ее из anim.

Например:

var a = {
  b: function () {
    return this.c;
  },
  c: 1
},
c = 2;

a.b() === 1;
var bMethod = a.b;
bMethod() === 2;
...