了解javascript对象

时间:2012-07-17 22:12:43

标签: javascript

我知道我认为这是一个非常基本的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()我现在明白这是不正确的。我道歉......

3 个答案:

答案 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后,thisTC.design

setTimeout(TC.design.init, 1000);

这不起作用。现在,this将在windowinit。因此,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/