Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解javascript对象_Javascript - Fatal编程技术网

理解javascript对象

理解javascript对象,javascript,Javascript,我有一个非常基本的javascript问题,出于一些愚蠢的原因,我正在努力解决这个问题 如果你想象下面的物体。如何从'init'函数内部调用一个函数 TC.design = { init : function(){ //How would I run the loadPage function here? }, loadPage : function(){ } } 我已经试过了。loadPage();

我有一个非常基本的javascript问题,出于一些愚蠢的原因,我正在努力解决这个问题

如果你想象下面的物体。如何从'init'函数内部调用一个函数

TC.design = {

        init : function(){
            //How would I run the loadPage function here? 
        },
        loadPage : function(){

        }
}
我已经试过了。loadPage();我希望它可以工作,但它返回未定义

我显然没有掌握一些基本的东西,希望有人能解释

编辑:现在已解决此问题

多亏了约瑟夫·西尔伯和火箭,我意识到了我的错误

这个问题是由于对javascript.call()函数的误解引起的。我用
TC.design.init.call()
调用了
init
,我现在理解它是不正确的。对不起……

这行不行

TC.design = {
        init : function(){
            TC.design.loadPage();
        },
        loadPage : function(){
           alert('Booga')
        }
}
这行吗

TC.design = {
        init : function(){
            TC.design.loadPage();
        },
        loadPage : function(){
           alert('Booga')
        }
}

this.loadPage
应该可以正常工作,除非您更改
this
的值

例如:

setTimeout(function(){
    TC.design.init();
}, 1000);
这很好用。当调用
init
时,
这是
TC.design

setTimeout(TC.design.init, 1000);
这行不通。现在,
这个
将是
窗口
init
中。因此,
此.loadPage
将无法工作


因此,在调用
TC.design.init
this.loadPage
时要小心,除非更改
this
的值

例如:

setTimeout(function(){
    TC.design.init();
}, 1000);
这很好用。当调用
init
时,
这是
TC.design

setTimeout(TC.design.init, 1000);
这行不通。现在,
这个
将是
窗口
init
中。因此,
此.loadPage
将无法工作


因此,请注意如何在
init
函数中调用
TC.design.init

引用
TG.design
对象
this.loadPage()
应该可以工作,但是必须正确调用
init
函数才能调用它

下面是一些示例代码:

var TC = {
    design: {
        init: function() {
            this.loadPage();
        },
        loadPage: function() {
            conosle.log('Works');
        }
    }
};

TC.design.init();​

这里是小提琴:

在您的
init
函数中,
this
指的是
TG.design
对象
this.loadPage()
应该可以工作,但是必须正确调用
init
函数才能调用它

下面是一些示例代码:

var TC = {
    design: {
        init: function() {
            this.loadPage();
        },
        loadPage: function() {
            conosle.log('Works');
        }
    }
};

TC.design.init();​

这里是小提琴:

您如何调用
init
?您可能正在更改
this
的值。
this.loadPage()
应该可以工作:当然
this.loadPage()
可以工作。由于返回了
undefined
(这可能意味着您没有在
loadPage
中使用
return
关键字,就像您向我们展示的代码一样),因此会得到
undefined
。请注意,未定义的
实际上就是您得到的。这意味着
loadPage
被触发。否则,您的代码将引发异常。@Joseph您的快速小提琴提供了难以置信的简单答案。由于对javascript.call()函数的使用存在误解,所以我无意中调用了init。我使用了TC.design.call()而不是TC.design.init();如果你不想把你的胡言乱语变成一个答案,我会接受的,因为是你的胡言乱语给了我答案。非常感谢!您如何调用
init
?您可能正在更改
this
的值。
this.loadPage()
应该可以工作:当然
this.loadPage()
可以工作。由于返回了
undefined
(这可能意味着您没有在
loadPage
中使用
return
关键字,就像您向我们展示的代码一样),因此会得到
undefined
。请注意,未定义的
实际上就是您得到的。这意味着
loadPage
被触发。否则,您的代码将引发异常。@Joseph您的快速小提琴提供了难以置信的简单答案。由于对javascript.call()函数的使用存在误解,所以我无意中调用了init。我使用了TC.design.call()而不是TC.design.init();如果你不想把你的胡言乱语变成一个答案,我会接受的,因为是你的胡言乱语给了我答案。非常感谢!是的,上面的工作很好。。。然而,我试图理解为什么这个.loadPage不起作用。。。。我现在找到了原因。我将init作为TC.design.init.call()调用;啊!是的,上面的工作很好。。。然而,我试图理解为什么这个.loadPage不起作用。。。。我现在找到了原因。我将init作为TC.design.init.call()调用;啊!在这种情况下,代码将引发异常(尝试调用undefined
this.loadPage
),但OP声明它返回
undefined
@freakish:True。不管怎样,我还是把这个留在这里。仅供参考。在这种情况下,代码将引发异常(尝试调用undefined
this.loadPage
),但OP声明它返回
undefined
@freakish:True。不管怎样,我还是把这个留在这里。仅供参考。