js自定义call apply bind
Function.prototype.myCall=function(context,...args){context=context || globalThis;const fnKey=Symbol('fn');context[fnKey]=this;const result=context[fnKey](...args);delete context[fnKey];return result;
}Function.prototype.myApply=function(context,args){context=context|| globalThis;const fnKey=Symbol('fn');context[fnKey]=this;const result=context[fnKey](args);delete context[fnKey];return result
}
Function.prototype.myBind=function(context,...args){context=context || globalThis;const fnKey=Symbol('fn');context[fnKey]=this;return function(...args2){const result=context[fnKey](...(args.concat(args2)))delete context[fnKey];return result;}}function logCall(...msg){console.log(msg)
}function logApply(msg){console.log(msg)
}logApply.myApply({},['this is mycall',4444]);
logCall.myCall({},'22',66);
const aa=logCall.myBind({},'55555','6666');
aa('9999')