// 函数原型上添加 myCall方法 来模拟call
Function.prototype.myCall = function(obj){
//我们要让传入的obj成为, 函数调用时的this值.
obj._fn_ = this; //在obj上添加_fn_属性,值是this(要调用此方法的那个函数对象)。
obj._fn_(); //在obj上调用函数,那函数的this值就是obj.
delete obj._fn_; // 再删除obj的_fn_属性,去除影响.
//_fn_ 只是个属性名 你可以随意起名,但是要注意可能会覆盖obj上本来就有的属性
}
let o = {
name : 'o',
fn:function() {
console.log(this.name);
}
}
let test = {
name : 'test'
}
console.log(o.fn());
console.log(o.fn.call(test));
console.log(o.fn.myCall(test));