您的位置:首页 > Web前端 > JavaScript

Javascript通过bind()掌控this

2015-10-23 15:16 423 查看
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()时传入的参数)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: