【JavaScript】改变this的指向

默认情况下,this指向调用函数的对象。

function show(x,y){
    alert(this);
    alert(x+','+y);
}
show(10,20);
//在js中所有函数都有调用对象,而如果函数的调用对象为window,则可以省略不写。
//show(10,20)等价于window.show(10,20),this指向调用函数的对象window

可以通过call、apply、bind方法改变函数中this的指向。

window.show.call("hello",10,20);
window.show.apply("hello",[10,20]);
//将this由指向window改为指向字符串“hello”并执行
window.show.bind("hello");
//返回该函数中this的指向对象不为调用对象而是指定的固定对象的函数

bind的使用

var res=show.bind('bind');
res(10,20);

apply函数的使用小技巧

Math.min();
Math.max();
//返回传入参数的最值
//缺点,如果有一个存储数据的数组,需要将数组的元素一个一个拿出来再传入。使用apply可以解决这个问题。
var arr=[1,2,3,4,5];
alert(Math.min.apply(null,arr));

猜你喜欢

转载自blog.csdn.net/weixin_46590928/article/details/126903378