调用原型函数会重复错误的函数

时间:2014-01-07 16:27:20

标签: javascript

我正在尝试学习JavaScript中的结构和匿名函数,我看了很多以这种方式完成的代码或库。然而,当我尝试按照他们这样做的方式时,它似乎称错了。这是我的代码:

文件1:被称为startUp;

this.project = this.project || {};

(function(){

    project.init = function (){
        console.log("startUp");
         project.Setup();

    }

}());

文件2:名为Setup

this.project = this.project || {};

(function() {

    var Setup = function() {
        this.init();
    };

    var p = Setup.prototype;

    p.init = function() {
        console.log("Setup");
    };

    project.Setup = Setup;
}());

由于某种原因,设置中的innit没有被调用,但是启动无法像疯了一样循环。

1 个答案:

答案 0 :(得分:2)

Setup内,this不是您认为的那样。 this由函数的调用方式设置。

因此,当您执行project.Setup();时,thisSetup的值为project。因此this.init()正在调用project.int()。这是调用project.Setup();等等,创建一个无限循环。

只有在您执行Setup.prototype.init时才会调用{p> new Setup