उदाहरण के तरीकों का उपयोग कर के रूप में ईवेंट हैंडलर्स के लिए कॉलबैक के दायरे में परिवर्तन 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।