以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
61. 实现`Function.prototype.call`

实现myCall函数可以考虑使用函数的arguments对象,为thisArg赋值,然后调用函数即可。具体的实现如下:

Function.prototype.myCall = function (thisArg, ...args) {  // 判断是否传递了thisArg,如果没有则默认为全局对象  thisArg = thisArg || window  // 将当前函数作为thisArg的方法调用  thisArg.fn = this  // 调用函数并传递参数  const result = thisArg.fn(...args)  // 删除该方法,避免污染thisArg  delete thisArg.fn  // 返回结果  return result}

myCall函数中,首先判断是否传递了thisArg,如果没有则默认为全局对象window。然后将当前函数作为thisArg的方法调用,并将参数传递给该方法。接着调用该方法并将结果存储在result变量中,并删除该方法,避免污染thisArg。最后返回结果即可。