gpt4 book ai didi

javascript - javascript 中 call() 方法的 native 实现

转载 作者:行者123 更新时间:2023-11-30 19:36:27 25 4
gpt4 key购买 nike

我尝试在 javascript 中实现调用方法的 native 实现。这里我们需要处理我们在调用函数和附加参数中传递的对象。我使用 eval() 方法处理附加参数。是否有任何有效的方法来执行 native call() 函数实现。这是我的代码

var name = {
name: "JavaScript",
version: "6",
}

function printName(location, district){
alert(this.name + ", " + this.version + ", " + location + ", " + district);
}

Function.prototype.myCall = function(...args){
var param = args.slice(1),
paramLength = param.length,
paramString = "JSONarg.myFun(";
for(var i = 1; i <= paramLength; i++){
paramString += "args["+i+"],";
}
paramString += ")";

if(typeof this != 'function'){
throw new Error(this + " is not a Function");
}

var JSONarg = {
...args[0],
myFun: this
}
return eval(paramString);
}

printName.myCall(name, "Chrome", "browser");

最佳答案

没有电话。

Function.prototype.myCall = function(context, ...args){
this.apply(context, args)
}

但我认为没有理由这样做

关于javascript - javascript 中 call() 方法的 native 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55907755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com