awesome-coding-js
awesome-coding-js copied to clipboard
call的代码实现写的有漏洞,应该改为如下代码
call的代码实现写的有漏洞,应该改为如下代码 function fn1() { console.log(this, 1); } Function.prototype.myCall = function (context = window, ...args) { if (this === Function.prototype) { return undefined; // 用于防止 Function.prototype.myCall() 直接调用 } context = Object(context); const fn = Symbol(); context[fn] = this; const result = contextfn; delete context[fn]; return result; } fn1.myCall('hello')