Function.prototype.call1 = function(context) {
context = context ? Object(context) : window
console.log(context)
context.fn = this
let arr = []
for(let i=1;i<arguments.length;i++) {
arr.push('arguments[' + i + ']')
}
let result = eval('context.fn(' + arr +')')
console.log(this)
delete context.fn
return result
}
function fn1() {
console.log(this.value)
}
fn2 = {
value: 2
}
fn1.call1('hhh')