之前看别人代码,总会遇到一个叫做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