उदाहरण के तरीकों का उपयोग कर के रूप में ईवेंट हैंडलर्स के लिए कॉलबैक के दायरे में परिवर्तन this
से "मेरा उदाहरण" के लिए "जो कुछ भी बस कॉलबैक कहा जाता है" । तो मेरा कोड इस तरह दिखता है
function MyObject() {
this.doSomething = function() {
...
}
var self = this
$('#foobar').bind('click', function(){
self.doSomethng()
// this.doSomething() would not work here
})
}
यह काम करता है, लेकिन क्या यह करने का सबसे अच्छा तरीका है? यह मुझे अजीब लगता है।
this
जावास्क्रिप्ट में गतिशील है यह निर्धारित किया जाता है जब समारोह है। कहा जाता है , जब यह घोषित किया जाता है।"
self === this
। इसलिए, self
स्थानीय संदर्भों में समझ में आता है और पैटर्न का पालन कर रहा है।
self
कोईwindow.self
वस्तु है, तो आपको उससे बचना चाहिए और यदि आप अपना स्वयं काself
संस्करण घोषित करना भूल जाते हैं (जैसे किसी कोड को इधर-उधर हिलाना) तो आप उस गलती का उपयोग कर सकते हैं । यह स्पॉट / डिबग के लिए कष्टप्रद हो सकता है। कुछ का उपयोग करने के लिए बेहतर है_this
।