2010-01-19 43 views
10

我正在使用的代碼:如何將JavaScript變量設置爲內聯函數的返回值?

var x = function() {return true;}; 

試圖X設置爲true,則函數的返回值,而是x被定義爲功能本身。我如何將x設置爲函數的返回值?我可以通過使用非內聯函數或其他方法輕鬆地解決這個問題,但是它讓我感到困惑,因爲我確信必須有一個簡單的解決方案。

謝謝。

回答

24

的解決方案是定義的函數,然後調用它(通過添加在年底額外的括號):

var x = (function() {return true;})(); 
6

你不執行的功能,你設置x實際上是功能。

如果你有一些變量y,它可能需要在功能上的價值的東西,如:與

var x = function(){ return true; }; 
var y = x(); // y is now set to true. 

或可選擇地執行功能到位:

var x = (function(){ return true; })(); 
2

你的代碼只是定義該函數並將其分配給x,函數不會被調用。要調用它,將函數放在括號內,並在其後添加(),就像正常函數調用一樣:

var x = 
     (
      function() { 
       return true; 
      } 
     )(); 
相關問題