//普通模式 普通函数
//严格模式 普通函数
//1.谁调用这个函数或者方法this就指向谁
function fn(){
console.log(this);
}
fn(); //window
var obj = {
name:"kenny",
fn:function(){
console.log(this);
}
}
obj.fn(); //obj
oBtn.onclick = function(){
console.log(this);//oBtn
}
//普通模式 箭头函数
//2.箭头函数中 this指向箭头函数所在环境中的this
//this指向的三个方法 call apply bind 改变this的指向问题
var obj1 = {
name:"kenny",
sayHello:function(x,y,z){
console.log(this+x+y+z);
}
};
var obj2 = {
name:"shily",
}
obj1.sayHello.call(obj2,1,2,3); //把obj1的方法给到obj2 同时改变了this的指向 指向obj2(call的第一个参数) call的参数是参数列表形式
obj1.sayHello.apply(obj2,[1,2,3]); //apply的参数是数组形式
obj1.sayHello.bind(obj2)();
//apply的灵活应用
//取数组中的最小值
var arr =[11,343,54,5,89,90];
console.log(Math.min(arr));//NaN
console.log(Math.min.apply(null,arr)); //5
console.log(arr.indexOf(5)); //3
js中关于普通函数与箭头函数this指向
最新推荐文章于 2022-05-18 16:44:05 发布
本文解析了JavaScript中this关键字的行为,包括普通函数、箭头函数中的this指向规则,以及如何通过call、apply、bind方法改变this指向。并展示了apply在数组操作中的灵活运用。
摘要由CSDN通过智能技术生成