Thursday 15 May 2014

javascript - "The iterator is bound to the context object." -


अंडरस्कोर.जे.एस दस्तावेज़ीकरण कहता है:

_ प्रत्येक (सूची, इटरेटर, [प्रसंग])

तत्वों की एक सूची पर बदलता है, प्रत्येक में पुनरावृत्त समारोह के लिए प्रत्येक उपज। इटरेटर संदर्भ वस्तु के लिए बाध्य है, यदि कोई पारित किया गया है। इटरेटर के प्रत्येक आमंत्रण को तीन तर्कों के साथ बुलाया जाता है: (तत्व, अनुक्रमणिका, सूची)। यदि सूची एक जावास्क्रिप्ट ऑब्जेक्ट है, तो इटरेटर का तर्क (मान, कुंजी, सूची) होगा। प्रत्येक कार्य ([1, 2, 3], अलर्ट)

  _। के लिए मूल के लिए प्रतिनिधि। = & Gt; प्रत्येक संख्या में बारी-बारी से चेतावनी ... _.each ({एक: 1, दो: 2, तीन: 3}, अलर्ट); = & Gt; बदले में प्रत्येक संख्या मान सचेत करता है ...   

ऊपर बोल्ड पाठ वाला क्या मतलब है? क्या कोई ऐसा उदाहरण प्रदान करता है जो इसे समझाएगा?

इसका अर्थ है, आपके इटरेटर फंक्शन के अंदर, मान यह का संदर्भ तर्क के रूप में आपके पास हो जाएगा।

उदाहरण के लिए:

  var arr = [ 1, 2, 3]; फ़ंक्शन इटरेटर (एल, आई, सूची) {console.log (यह)} _.each (एआर, इटरेटर, एआर); // पूरे सरणी को 3 बार लॉग करेगा   

यदि आप ऑब्जेक्ट विधि को इटरेटर के रूप में पास करना चाहते हैं, तो यह उपयोगी है, और यह विधि यह का उपयोग करती है। उदाहरण:

  var arr = [1, 2, 3]; Var myObj = {foo: 5, addFoo: फ़ंक्शन (एल, i, lst) {console.log (el + this.foo)}}; // यह 3 बार एनएएन लॉग करेगा, क्योंकि फंक्शन के अंदर 'यह' // विंडो का मूल्यांकन करेगा, और कोई विंडो नहीं है। फू इसलिए this.foo // अपरिभाषित हो जाएगा, और अपरिभाषित + 1 नाएन _.ईच (arr, myObj.addFoo) है; // यह, दूसरी ओर, इरादा के रूप में काम करता है इसे myObj से मूल्य का // मिल जाएगा, और 6 में प्रवेश करेगा, फिर 7, फिर 8 _.each (arr, myObj.addFoo, myObj);   



No comments:

Post a Comment