2013-07-26 93 views
4

我想執行下面的JS代碼;JavaScript SyntaxError:無效的屬性ID

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

但我得到一個錯誤 語法錯誤:無效的屬性ID

什麼是錯的,上面的代碼?

回答

8

你有一個語法錯誤:

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' 
}; 
3

包裝與()

(function test(){ 
    alert("123"); 
}()); 

或者:

(function test(){ 
    alert("123"); 
})();