// 思路:
// 在call的对象中添加调用call的函数
// 调用函数
// 删除函数
Function.prototype.call2 = function(context,...args){
let cont = context || window; //context为null时,this为全局的window
cont.fn = this; //添加函数
let res;
if(!args){
res = cont.fn()
}else{
res = cont.fn(...args); //调用函数,并保存结果
}
delete cont.fn; //删除函数
return res //返回结果
}
let obj = {
value:1
}
function bar(name,age){
return {
value:this.value,
name:name,
age:age
}
}
console.log(bar.call2(obj,'kevin',18))