1.apply方法的使用
//改变this的指向
let o = {
name: 'Andy'
}
function fn(a,b) {
console.log('你好呀')
console.log( a + b)
}
fn.call(o, 2,7)
//用call实现继承
Fucntion Father(name,age) {
this.name = name;
this.age = age
}
Father.prototype.sing = function() {
console.log('123')
}
Function Son(name,age,score) {
this.score = score
Father.call(this, name, age)
}
let son = new Son('李四', 18, 100)
console.log(son)
2.apply方法的使用
//改变this指向
let o = {
name: '张三'
}
function fn() {
console.log('123')
}
fn.apply(o, ['pink'])
//调用数组的方法
let arr = [2,7,99,64,3,0,408,88]
let max = Math.max.apply(Math,arr)
console.log(max)
let min = Math.min.apply(Math, arr)
console.log(min)
总结:
1.call方法和apply方法都可以调用函数,并且改变this的指向
2.call方法的第一个参数是this的指向,后面都是参数项,以逗号分隔
3.apply方法的第一个参数也是this的指向,后面的参数必须是一个数组
4.call可以结合prototype实现继承,继承父构造函数的方法
5.apply可以调用数组的方法