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

当我运行上述内容时,我得到

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

4

2 回答 2

4

构造函数作用域中的局部变量不会成为实例的属性。

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

于 2012-04-14T05:21:54.380 回答
3

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

http://jsfiddle.net/Y2Rvq/

于 2012-04-14T05:22:11.210 回答