我知道我认为这是一个非常基本的javascript问题,由于一些愚蠢的原因,我正在努力。
如果您想象下面的对象。我如何从'init'函数中调用一个函数?
TC.design = {
init : function(){
//How would I run the loadPage function here?
},
loadPage : function(){
}
}
我试过这个.loadPage();我希望它可以工作,但它返回undefined。
我显然没有把握一些基本的东西,希望有人可以解释。
编辑:现在已经解决了......
感谢 Joseph Silber 和 Rocket ,我意识到自己的错误......
问题出现是由于对javascript .call()函数的误解。我用init
打电话TC.design.init.call()
我现在明白这是不正确的。我道歉......
答案 0 :(得分:2)
不工作吗?
TC.design = {
init : function(){
TC.design.loadPage();
},
loadPage : function(){
alert('Booga')
}
}
答案 1 :(得分:2)
this.loadPage
。的值,否则 this
应该可以正常工作
例如:
setTimeout(function(){
TC.design.init();
}, 1000);
这样可以正常工作。调用init
后,this
为TC.design
。
setTimeout(TC.design.init, 1000);
这不起作用。现在,this
将在window
内init
。因此,this.loadPage
无效。
因此,请小心拨打TC.design.init
。
答案 2 :(得分:0)
在init
函数中,this
引用TG.design
对象; this.loadPage()
应该有效,但您必须正确调用init
函数才能调用它。
以下是一些示例代码:
var TC = {
design: {
init: function() {
this.loadPage();
},
loadPage: function() {
conosle.log('Works');
}
}
};
TC.design.init();
这里是小提琴:http://jsfiddle.net/85AWT/