在编程的时候经常会遇到this指针和闭包同时存在的问题。如下面的代码所示。
【1】使用这两种方法都能解决问题,但是那个性能会更好些。怎么分析?
【2】在使用第二种方法中,使用了bind改变了this指针后,是否仍相对于test函数形成闭包?
<script>
function test() {
var obj = {name: 1};
window.setTimeout(function () {
console.log(obj.name);
}, 1000);
window.setTimeout(function () {
console.log(this.name);
}.bind(obj), 1000);
}
test();
</script>
https://jsfiddle.net/hsfzxjy/xm46t186/
结果差异显著:
相关阅读:Why is bind slower than a closure?