【发布时间】:2011-10-11 08:51:05
【问题描述】:
我对 JavaScript 很陌生,刚刚开始了一些更严肃的 JavaScript 开发。我在实现模块模式时获得了很多乐趣。真正让我发疯的一件事是“return”声明的行为。写出来差别很大
Test = ( function()
{
var message = "Hello World!";
return
{
// Does not work
printTest: function() { window.alert(message); }
};
}());
或
Test = ( function()
{
var message = "Hello World!";
return {
// Works well
printTest: function() { window.alert(message); }
};
}());
注意“return”语句后面的花括号。
这是一个典型的愚蠢的新手错误并且在某处有详细记录吗?
Firebug 无法给出提示。 IE9 和 Chrome 确实在代码的后面位置报告了一些晦涩的语法错误:“printTest: function()”中的“function”语句之后的左大括号。
有这方面的专家吗? JavaScript 中是否还有更多这样的陷阱?
【问题讨论】:
-
尽管您的示例都不起作用,因为您在要返回的对象的属性枚举中有一个分号。它应该在警报之后,而不是在花括号之后。
-
@PatrikAkerstrand:谢谢,已更正。
标签: javascript