2012-04-13 8 views
11

मैं इनमें से एक बहुत उपयोग कर रहा हूँ:jquery वाक्यविन्यास को छोटा करने के लिए कैसे करें और अन्य कथन?

$text = $menu.jqmData('menu-text') ? 
      $menu.jqmData('menu-text') : self.options.menuTxt; 

यह पहले से ही "आशुलिपि" वाक्य रचना है, लेकिन मैं सोच रहा हूँ, चाहे वह ऊपर लाइन कम करने के लिए आगे भी संभव है। $ menu.jqmData ('menu-text') और फिर पूरी चीज़ को फिर से लिखने की तुलना में एक बेहतर तरीका होना चाहिए। क्या नहीं है

मदद के लिए धन्यवाद!

उत्तर

21

डबल पाइप का उपयोग करने का एक छोटा रास्ता है। यदि मूल falsy है तो यह मूल रूप से दूसरे मान का उपयोग करता है।

$text = $menu.jqmData('menu-text') || self.options.menuTxt; 

आप इसे एक ही पंक्ति में कई बार उपयोग भी कर सकते हैं। मान लीजिए कि आपके पास एक चर uberMenuTxt था जो दूसरे दो पर प्राथमिकता लेता है और आप ऐसा कर सकते हैं।

$text = uberMenuTxt || $menu.jqmData('menu-text') || self.options.menuTxt; 

यह मूल रूप से हर बार वर्तमान मूल्य falsy है और पहले कि कम से बंद हो जाएगा जा रहा पर रहता नहीं है।

+0

ग्रेट! कोड का टन बचाया गया :-) – frequent

+0

प्रश्न: यदि कोई मूल्य वापस कर देता है तो कौन सा दूसरा होता है। सबसे पहले, अगर सामान्य में सामान्य स्थिति की तरह, सही? – frequent

+4

@ फ्रीक्वेंट हां, यह है कि कैसे || (या) काम करता है। यदि पहला कथन सत्य लौटाता है, तो निम्नलिखित का मूल्यांकन नहीं किया जाता है। – GNi33

संबंधित मुद्दे