2010-01-19 32 views
10

Tôi đang sử dụng mã:Làm cách nào để đặt biến số javascript cho hàm trả về của hàm nội tuyến?

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

cố gắng thiết lập x là true, giá trị trả về của hàm, nhưng thay vào đó x được định nghĩa là chức năng riêng của mình. Làm thế nào tôi có thể đặt x là giá trị trả về của hàm? Tôi có thể dễ dàng mã xung quanh vấn đề này bằng cách sử dụng một chức năng không nội tuyến hoặc một số như vậy, nhưng nó lỗi tôi bởi vì tôi chắc chắn phải có một giải pháp đơn giản.

Cảm ơn.

Trả lời

24

Giải pháp là để xác định chức năng và sau đó gọi nó (bằng cách thêm dấu ngoặc thêm ở cuối):

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

Bạn đang không thực hiện các chức năng, bạn đang thiết x để thực sự trở thành chức năng.

Nếu bạn đã có một số biến y, nó có thể mất trên giá trị của hàm với một cái gì đó như:

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

hoặc cách khác thực hiện chức năng tại chỗ với:

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

Mã của bạn chỉ xác định hàm và gán nó cho x, hàm này không được gọi. Để gọi nó, hãy đặt hàm trong dấu ngoặc đơn và thêm () sau nó, giống như gọi hàm bình thường:

var x = 
     (
      function() { 
       return true; 
      } 
     )(); 
Các vấn đề liên quan