/**
* JS提供了一些函数方法给我们处理函数内部this的指向问题
* 常用的有
* bind()
* call()
* apply()
*/
/**
* 1.call方法
* call()方法调用一个对象,为调用函数的方式,可以改变函数的this指向
* fun.call(thisArg, arg1, arg2, ....)
* thisArg: 改变this的指向
* arg1, arg2: 参数
*/
var obj = {
name: 'kandy'
}
function fn(a,b) {
this.age = 41;
console.log(this.age)
}
// 改变fn的this的指向到obj对象
// call 第一个可以调用函数,第二可以用来改变函数的this的指向
fn.call(obj,1,2);
// 利用 call() 来实现构造函数的继承
function Father(name, age) {
this.name = 'pp';
this.age = 12;
}
function Son(name, age) {
// 调用父构造函数的同时,把父构造函数的this指向子构造函数的this
Father.call(this, name, age)
console.log(this,'son')
}
var hh = new Son('哈哈哈',11);
console.log(hh) // Son {name: "pp", age: 12}
/**
* 1.apply方法
*/
console