में "इस" पहुँच मैं js में अभी शुरुआत कर रहा हूँ, और निम्न कोड से हैरान हूँ:जावास्क्रिप्ट प्रोटोटाइप और बंद
Foo = function(arg) {
this.arg = arg;
};
Foo.prototype = {
init: function() {
var f = function() {
alert("current arg: " + this.arg); // am expecting "bar", got undefined
}
f();
}
};
var yo = Foo("bar");
yo.init();
मैं "वर्तमान आर्ग: बार" पाने के लिए उम्मीद थी, लेकिन "मिल गया वर्तमान तर्क: अपरिभाषित "। मैंने देखा है कि एक "सामान्य" चर में this.arg पहले प्रतिलिपि करने, और बंद करने में इस चर चर्चा करते हुए द्वारा काम करता है:
Foo.prototype = {
init: function() {
var yo = this.arg;
var f = function() {
alert("current arg: " + yo); }
f();
}
};
Am मैं कुछ गलत कर, गलत उम्मीदों मिला है, या यह में से एक में गिर करता है जेएस डब्ल्यूटीएफ?
'this.arg' को "सामान्य" चर में पहले कॉपी करने से पहले आपके फ़ंक्शन के लिए इसका अर्थ कुछ भी अलग नहीं होगा। – bobobobo
@bobobobo तकनीकी रूप से सच है, लेकिन जब किसी ने यह संकेत दिया कि ऐसा होगा? जिस तरह से आपने phrased किया है वह भ्रामक हो सकता है। उन्होंने वास्तव में दूसरे उदाहरण में 'इस' का उपयोग नहीं किया; स्थानीय चर 'yo' का उपयोग करके एक बंदरगाह बनाता है जो' f' फ़ंक्शन के अंदर भी इच्छित ऑब्जेक्ट का संदर्भ रखता है। – theazureshadow