同
在js中,call、apply、bind这三个方法主要是为了改变函数中this的指向
var a = {
name: "阿里巴巴",
fn:function(){
console.log(this.name);
}
}
var b = a.fn
b() //undefined
b.call(a) // 阿里巴巴
b.apply(a) // 阿里巴巴
b.bind(a) // 没有被打印
异
- apply 和 call 的区别
是第二个参数的传递方式不同,apply 的第二个参数必须是一个数组(或者类数组),而 call 允许传递一个参数列表var a = { name:"阿里巴巴", fn:function(m,n){ console.log(m+n); } } var b = a.fn; b.call(a,6,6) // 12 b.apply(a,[6,4]) // 10 - bind和call、apply的区别
call和apply都是立即执行,而bind则是返回一个函数var a = { name: "阿里巴巴", fn:function(){ console.log(this.name); } } var b = a.fn b.bind(a) // 没有被打印 var c = b.bind(a) console.log(c) //function (){ //console.log(this.name); //} c() // 阿里巴巴
博客介绍了JS中改变函数this指向的相关内容。call、apply、bind三个方法可改变this指向,apply和call区别在于第二个参数传递方式,apply需是数组或类数组,call允许传递参数列表,还提及了bind与call、apply的区别。
1798

被折叠的 条评论
为什么被折叠?



