2010-01-19 5 views
10

मैं कोड का उपयोग कर रहा:मैं एक इनलाइन फ़ंक्शन की वापसी के लिए जावास्क्रिप्ट चर सेट कैसे करूं?

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

सच करने के लिए एक्स स्थापित करने के लिए कोशिश कर रहा है, फंक्शन का वापसी मान, लेकिन इसके बजाय एक्स समारोह खुद के रूप में परिभाषित किया गया है। मैं एक्स को फ़ंक्शन के रिटर्न वैल्यू के रूप में कैसे सेट कर सकता हूं? मैं एक गैर-इनलाइन फ़ंक्शन या कुछ ऐसे का उपयोग कर आसानी से इस समस्या के आसपास कोड कर सकता हूं, लेकिन यह मुझे खराब करता है क्योंकि मुझे यकीन है कि एक सरल समाधान होना चाहिए।

धन्यवाद।

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

उत्तर

24

समाधान समारोह को परिभाषित करने और फिर इसे आह्वान (अंत में अतिरिक्त कोष्ठकों जोड़कर) करने के लिए है समारोह। साथ जगह में

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

या वैकल्पिक रूप से समारोह निष्पादित करें::

, तो आप कुछ चर y था, ऐसा लगता है कि कुछ के साथ समारोह के मूल्य पर ले सकता है

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

आप फ़ंक्शन को निष्पादित नहीं कर रहे हैं, तो आप x स्थापित कर रहे हैं वास्तव में होना करने के लिए:

2

आपका कोड सिर्फ फ़ंक्शन को परिभाषित करता है और इसे x पर असाइन करता है, फ़ंक्शन को कॉल नहीं किया जाता है। इसे कॉल करने के लिए, फ़ंक्शन कोष्ठक में रखें और इसके बाद () जोड़ें, सामान्य फ़ंक्शन कॉल के लिए:

var x = 
     (
      function() { 
       return true; 
      } 
     )(); 
संबंधित मुद्दे