1.对于这三个方法都可以改变对应对象里面的this指向。
2.如果3个方法不传参使用的方法就是一样的
fn1.call(obj), fn1.apply(obj), fn1.bind(obj)
3.如果传递参数call函数括号里面对象的后面直接跟着传递的参数,apply也一样,只是参数必须是数组类型,bind返回的是一个函数所以需要在后面加一个括号传递参数。
var obj1 = {
"name":"jcy",
"age":14
}
var obj = {
"age":18,
"name":"array",
fn:function(str){
alert(this.name+str)
}
}
obj.fn.call(obj1,"ha1");
obj.fn.apply(obj1,["ha2"])
obj.fn.bind(obj1)("haha");
本文详细解析了JavaScript中改变函数内部this指向的三种方法:call、apply和bind。通过实例展示了它们如何在不同场景下工作,以及参数传递的区别。
1797

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



