我正在尝试执行以下JS代码;
var foo = {
func1:function(){
function test()
{
alert("123");
}();
alert("456");
},
myVar : 'local'
};
但是我收到了一个错误 SyntaxError:无效的属性id
上述代码有什么问题?
答案 0 :(得分:10)
您遇到语法错误:
var foo = {
func1:function() {
function test() {
alert("123");
}();
// ^ You can't invoke a function declaration
alert("456");
},
myVar : 'local'
};
假设您想要一个立即调用的函数,您必须将该函数解析为表达式:
var foo = {
func1:function() {
(function test() {
// ^ Wrapping parens cause this to be parsed as a function expression
alert("123");
}());
alert("456");
},
myVar : 'local'
};
答案 1 :(得分:3)
用()
包裹:
(function test(){
alert("123");
}());
或者:
(function test(){
alert("123");
})();