JavaScript SyntaxError:无效的属性id

时间:2013-07-26 10:26:16

标签: javascript

我正在尝试执行以下JS代码;

var foo = {
  func1:function(){
    function test()
    {
      alert("123");
    }();
    alert("456");
  },
  myVar : 'local'
};

但是我收到了一个错误 SyntaxError:无效的属性id

上述代码有什么问题?

2 个答案:

答案 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");
})();