为什么以下代码没有初始化我的JavaScript对象?

时间:2012-04-14 05:19:54

标签: javascript

MyClass = function() {
    var init = function() {
        console.log("Initializing");
    }
    this.init();
}
var myInstance = new MyClass();

当我运行以上内容时,我得到了

TypeError:Object [object Object]没有方法'init'

2 个答案:

答案 0 :(得分:4)

构造函数范围中的局部变量不会成为实例的属性。

而不是var init = function...;,请使用this.init = function...;

答案 1 :(得分:3)

这是因为将init声明为var,或者是局部变量而不是对象的属性。因此,init不会成为对象的成员函数,这就是您的代码无法按预期运行的原因。将其初始化为this.init = function() {,以实现预期的行为。

http://jsfiddle.net/Y2Rvq/