我将使用一个例子解释我的问题:
我有一个名为'ExampleObj'的对象,它返回3个属性'init','age','weight',我需要从年龄到重量访问,但由于某种原因我不能这样做。你能解释一下为什么以及如何才能达到正确的结果?
编辑:这是当前的代码,self.tabAnimation()正在准备dom但是...不工作“click”,即使我使用();检查代码中的****,是触发我错误的行。
return {
init: function() {
var self = this;
tabs.init();
self.tabAnimation();
tabToggler.on('click', self.tabAnimation );
},
tabAnimation: function() {
var self = this;
var activeTabBars = function() {
console.log('lol');
tabItem.find(bars).each(function() {
var me = this;
****self.animateBars(me,1000)****
});
}
animateOnVisible.init(tabItem, activeTabBars);
},
animateBars : function(el, duration) {
var percentage = $(el).data('value') + "%";
$(el).animate({
'width': percentage
}, duration);
}
}
}
非常感谢
的Davide
答案 0 :(得分:2)
您必须使用this
:
age: function() {
console.log('some random log');
var me = this;
me.weight;
me.weight(something);
},
您不必将this
分配给另一个变量,但如果您这样做,则不会造成任何伤害。
请注意,在“init”功能中,
self.age;
本身无能为力。要调用该函数,您必须编写它
self.age();