Javascript通过bind()掌控this

Javascript通过bind()掌控this: http://blog.csdn.net/rznice/article/details/26134201

bind能为我们做些什么,同时它的好处在哪里。

(一)事件处理函数
    所谓的事件处理函数其实就是绑定事件后的那个callback,这里如果用上bind你的代码应该会简洁优雅一些

    var logger = {  
        x: 0,         
        updateCount: function(){  
            this.x++;  
            console.log(this.x);  
        }  
    }  

 // 下面两段代码的实现是一样的

document.querySelector('button').addEventListener('click', function(){  
    logger.updateCount();  
}); 
document.querySelector('button').addEventListener('click', logger.updateCount.bind(logger));

    本来通常情况下处理函数都要用一层匿名函数包裹一下,才能维持处理函数本身的this.这里直接通过.bind(logger)人为的将其执行时的this指向logger对象。
    .bind()创建了一个函数,当这个函数在被调用的时候,它的 this 关键词会被设置成被传入的值(这里指调用bind()时传入的参数)。

原文地址:https://www.cnblogs.com/zhuiluoyu/p/4904621.html