在Javascript对象中调用方法

时间:2012-03-06 00:18:35

标签: javascript oop

我正在尝试创建一个可以调用其他方法的javascript对象。但是,我遇到了一个奇怪的问题,我似乎无法弄明白。

我有以下代码

myObjectDef = function() {
    this.init = function() {
        //do some stuff
        this.doSecondInit();
    }
    this.doSecondInit = function() {
        //do some more stuff
    }
}

myObject = new myObjectDef();
myObject.init();

我收到一条错误,指出“消息:对象不支持此属性或方法”。它以this.doSecondInit();结束。我无法弄清楚为什么会这样做。我的代码运行很好,直到第二种方法的调用。我如何使这项工作?

1 个答案:

答案 0 :(得分:3)

这里有一组额外的括号:

this.doSecondInit() = function() {

您无法分配函数调用的结果,更不用说甚至不存在的函数的结果。

编辑完成后,你的东西似乎工作正常:

http://jsfiddle.net/nabVN/

您确定在实际代码中没有相同的拼写错误?最好开始习惯在每个函数调用之后都不要放(),这可能是函数不具备值的语言所带来的坏习惯。