1.call
Function.prototype.mycall=function(context){
var context = context || window
context.f=this
var args=[]
for(let i=1;i<arguments.length;i++){
args[i-1]="arguments["+i+"]"
}
var result = eval('context.f('+args+')')
delete context.f
return result
}
2.apply
Function