मुझे निम्नलिखित उदाहरण में इस कीवर्ड का अप्रत्याशित मूल्य मिला :
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
इस कीवर्ड का मूल्य ऑब्जेक्ट x है जैसे कि इसे उस ऑब्जेक्ट से निष्पादित किया जाता है, मैं केवल उस फ़ंक्शन को प्राप्त करने की अपेक्षा करता हूं जिसमें यह कीवर्ड कॉलिंग ऑब्जेक्ट x के बराबर है
यह उदाहरण हमें अंतर दिखाता है
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
दोनों उदाहरणों में func1 जो कि getter फ़ंक्शन है, और func2 जो ऑब्जेक्ट का एक तरीका है, ऑब्जेक्ट x से निष्पादित किया जाता है , और लौटाए गए फ़ंक्शन को तब निष्पादित किया जाता है। इसलिए पहले उदाहरण में यह मान ऑब्जेक्ट x के बजाय वैश्विक ऑब्जेक्ट के बराबर नहीं है ।
x.func1()
।