我正在尝试创建一个可以调用其他方法的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();结束。我无法弄清楚为什么会这样做。我的代码运行很好,直到第二种方法的调用。我如何使这项工作?
答案 0 :(得分:3)
这里有一组额外的括号:
this.doSecondInit() = function() {
您无法分配函数调用的结果,更不用说甚至不存在的函数的结果。
编辑完成后,你的东西似乎工作正常:
您确定在实际代码中没有相同的拼写错误?最好开始习惯在每个函数调用之后都不要放()
,这可能是函数不具备值的语言所带来的坏习惯。