向对象添加动态函数

时间:2010-09-08 06:12:41

标签: javascript dynamic

我正试图让它发挥作用,但事实并非如此:

var i; 

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

i.test();

我希望代码提醒'hello',但Firefox错误控制台会显示:

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

我该如何解决这个问题......

3 个答案:

答案 0 :(得分:4)

您的i未分配给任何内容,因此它不是对象。事实上,它指的是全局undefined对象,它恰好在Firefox中是只读的(应该是这样)。你需要:

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

然后一切都会好的。

答案 1 :(得分:0)

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

你有两个不同的问题。你没有初始化i(正如slebetman所说),你错过了一个分号,迫使翻译使用分号替换。

答案 2 :(得分:0)

您无法将函数添加到未定义的值,您需要创建一个实际的对象:

var i = {};

虽然不是必需的,但您应该在语句末尾加一个分号以避免含糊不清:

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