eg1:
var obj={
name:'王源',
age:18
}
function fn(name,age){
this.name = name;
console.log(this) // {name: "易洋千玺", age: 18}
}
fn.call(obj,'易洋千玺',18)
eg2: 可以用来实现es5函数属性的继承
function father(name,age){
this.name = name,
this.age = age
}
function son(name,age){
father.call(this,name,age)
}
var fn = new son('易洋千玺',18);
console.log(fn.name) // 易洋千玺
2.2 apply
apply 方法调用一个函数,就是调用函数的方式,可以改变this指向
fn.apply(thisAng , [ag1, ag2])
thisAng 为当前fn函数运行时指向的this 值
[ag1,ag2] 为传递的参数必须包含在数组里面
返回值就是函数的返回值,因为它就是调用函数
eg1 :
var obj={
name:'王源',
age:18
}
function fn(name,age){
this.name = name;
console.log(this) // {name: "易洋千玺", age: 18}
}
fn.apply(obj,['易洋千玺',18])
eg2: 可以利用apply 借助于数学内置对象求最大值
var arr = [1, 22, 3, 5, 66, 88];
var max = Math.max.apply(Math, arr);
console.log(max) //88
1. this 的指向1.1 普通函数内 this 的指向这些this 指向是当我们调用函数时确定的,调用方式不同决定了this指向不同,函数内的this 一般指向函数的调用者调用方式this指向普通函数调用window构造函数调用实例对象,原型对象里面的方法也指向实例对象对象方法调用该方法所属对象绑定事件方法绑定事件对象定时器函数window立即执行函数window1.2. 箭头函数的 this 指向箭头函数的this是在定义函