2012-03-06 77 views
0

我正在尝试创建一个可以调用其他方法的JavaScript对象。但是,我遇到了一个我似乎无法解决的奇怪问题。调用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

你的代码看起来很好,对我来说工作正常:http://jsfiddle.net/vdVE8/ - 也许你需要显示丢失的位。 – nnnnnn 2012-03-06 00:26:14

回答

3

有一组额外的括号的位置:

this.doSecondInit() = function() { 

不能分配给一个函数调用的结果,更不用说甚至不存在的函数的结果。

你的编辑后,你的东西似乎很好地工作:

http://jsfiddle.net/nabVN/

你确定你没有在实际的代码相同的错别字?更好地开始习惯于在每次函数调用之后都不要放入那个(),这可能是从函数不是值的语言中传出来的坏习惯。

+0

对不起,修复了我的代码。 – Robbert 2012-03-06 00:22:18

+0

看起来我需要更仔细地查看我的代码。这绝对不适合我,我绝对没有第一套括号。我确信在这一点上我还有其他的东西可以忽略。 – Robbert 2012-03-06 00:31:15

相关问题