向对象添加动态函数

发布于 2024-09-17 19:14:46 字数 268 浏览 3 评论 0原文

我试图让它工作,但它不起作用:

var i; 

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

i.test();

我希望代码发出“hello”警报,但 Firefox 错误控制台显示:

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

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

I'm trying to get this to work, but it doesn't:

var i; 

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

i.test();

I expect the code to alert 'hello', but instead, the Firefox error console shows:

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

How do I fix this...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

能否归途做我良人 2024-09-24 19:14:46

您的 i 没有分配给任何东西,因此它不是一个对象。事实上,它指向全局 undefined 对象,该对象在 Firefox 中恰好是只读的(理应如此)。你需要:

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

那么一切都会好起来的。

Your i isn't assigned to anything so it's not an object. It is, in fact, pointing to the global undefined object which happens to be read-only in Firefox (as it should be). You need:

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

then all will be fine.

爱人如己 2024-09-24 19:14:46

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

var i = {};

虽然不是必需的,但您应该在语句末尾有一个分号以避免歧义:

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

You can't add a function to an undefined value, you need to create an actual object:

var i = {};

Although not required, you should have a semicolon at the end of the statement to avoid ambiguity:

i.test = function() { 
  alert("hello"); 
};
茶花眉 2024-09-24 19:14:46
var i = {};
i.test = function() { 
    alert("hello"); 
};

你有两个不同的问题。您没有初始化 i (如 slebetman 所指出的),并且您缺少一个分号,迫使解释器使用分号替换。

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

You had two separate issues. You were not initializing i (as noted by slebetman), and you were missing a semi-colon, forcing the interpreter to use semi-colon replacement.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文