2009-12-01 2 views
1
top.on('click', function(){ 
    anim.run(); 
}); 

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

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

ответ

4
top.on('click', function() { anim.run(); }); 

или

top.on('click', Y.bind(anim.run, anim)); 
+0

Спасибо, приятно видеть члена команды YUI! – Daniel

3

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

Например:

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

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

нормально, так top.on ('Клик', parent.anim.run); works спасибо – Daniel

+2

Нет, если 'run' не ссылается на' this'. –