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')