मैं "Eloquent JavaScript" पढ़ रहा हूं। अध्याय 3 "Closure" अवधारणा पेश करता है और आपको कुछ उदाहरण देता है। इनमें से एक अगला है:क्या कोई मुझे इस जावास्क्रिप्ट फ़ंक्शन का प्रवाह समझा सकता है? (क्लोजर अवधारणा)
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// → 10
मुझे लगता है कि मैं अवधारणा को समझ गया। यदि पहले मैं console.log(twice)
निष्पादित करता हूं, क्योंकि परिवर्तनीय number
अपरिभाषित है, मुझे जो मिलता है वह [Function]
है। मुझे समझ में नहीं आता कि कैसे twice(5)
काम करता है। क्यों स्थानीय चर number
मूल्य 5
के साथ शुरू किया गया है?
इसके अलावा, अगर मैं console.log(multiplier(2,5))
निष्पादित करता हूं तो मुझे परिणाम के रूप में 10 नहीं मिलता है?
धन्यवाद।
@Sidenote: धन्यवाद! –
यह एक [करीबी कार्य] है (http://stackoverflow.com/questions/2272902/make-this-syntax-possible-var-a-add23-5) – ftor