bangbangbang 关于bind的故事

之前看别人代码,总会遇到一个叫做bind的东西
每次看到就感觉超出了自己所能理解的范围,,,哦,我的天哪,这都是些什么啊 ,好烦


终于看了一篇关于bind的文章,总算对bind有了点认识

顺便截取了一点文档介绍,帮助理解

bind()方法会创建一个新函数,当这个新函数被调用时,它的this值是传递给bind()的第一个参数, 它的参数是bind()的其他参数和其原本的参数.

看了介绍还是一头雾水怎么办,那就看代码吧

var foo={
x:1
}
var boo =function(){
console.log(this.x)
}
boo() //undefined
//通过bind把foo来作为this传入,改变了函数的上下文
var newBoo = boo.bind(foo)
newBoo() //1

开始时候运行boo(),this指向window,将会进行全局搜索,无法取到x的值,
当我们通过bind把foo当做boo的this,传入的时候,改变了函数的执行上下文,this-》foo,所以就取到了x

END

posted @ 2016-03-22 20:59  V_JACK  阅读(129)  评论(0编辑  收藏  举报