2010-09-08 39 views
0

我试图得到这个工作,但它并不:添加动态功能的一个对象

var i; 

i.test = function() { 
    alert("hello"); 
} 

i.test(); 

我期待的代码,以提醒“你好”,而是Firefox的错误控制台显示:

missing } in XML expression 
alert("hello"); 
---------------^ 

我如何解决这个问题?

回答

4

i所以它不是一个对象没有分配到任何东西。实际上,它指向的全球undefined对象恰好在Firefox中是只读的(因为它应该是)。您需要:

var i = {}; //init to empty object 

然后一切都会好起来的。

+0

我照你的建议做了,一切都很好。谢谢! – Alterlife 2010-09-08 07:26:54

0
var i = {}; 
i.test = function() { 
    alert("hello"); 
}; 

您有两个单独的问题。您没有初始化i(正如slebetman所指出的),并且您错过了一个分号,迫使解释器使用分号替换。

0

不能将函数添加到一个未定义的值,你需要创建一个实际的对象:

var i = {}; 

虽然不是必需的,你应该在避免含糊不清的语句结束一个分号:

i.test = function() { 
    alert("hello"); 
};