在js中,call、apply、bind是Function对象自带的三个方法,主要用于改变函数中this指向对象
1、共同点:
a、三者都是用来改变函数的this指针的指向
b、三者第一个参数都是this要指向的对象
2、区别:
a、call、apply立即调用执行,bind返回函数,延后调用执行
b、call、bind有相同传参规则,apply第2个参数传递数组
3、使用方法
a、call
语法:
call([thisObj [,arg1[,arg2[,、、、]]]])
调用方法:
function fn(a,b){ //定义调用call函数
console.log(this,a,b)
}
function funObj(){} //定义传递的函数
var obj={id:"call"} //定义对象obj
fn.call() ; //this为window
fn.call(null); //this为window
fn.call(undefined); ///this为window
fn.call(funObj); //function funObj(){}
fn.call(obj);//Object
本文详细介绍了JavaScript中Function对象的call、apply、bind方法,它们都用于改变函数内部的this指向。共同点是都能设置this,而区别在于调用时机:call和apply立即执行,bind返回新函数。call和bind接受参数方式类似,apply的第二个参数为数组。通过示例展示了如何在不同场景下使用这些方法。
1802

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



