gpt4 book ai didi

Javascript 函数调用 : Regular call vs Call vs Bind Call

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:58 26 4
gpt4 key购买 nike

我的问题很简单:我正在将一个函数传递给其他一些稍后调用的函数(示例回调函数),问题是何时、为何以及最佳做法是什么。

样本:我有 xxx() 函数,我必须传递它,如下面的 window.onload 事件所示。

最佳做法是什么?为什么?有什么性能方面或者为什么要选择使用call或者bind来调用这个函数

function xxx(text)
{
var div = document.createElement("div");
div.innerHTML = text + " - this: " + this.toString();

document.body.appendChild(div)
}

function callFunction(func)
{
func("callFunction");
}

function callUsingCall(func)
{
func.call(this, ["callUsingCall"]);
}

function callUsingBind(func)
{
func.call(this, ["callUsingCall"]);
}


window.onload = function(){
callFunction(xxx);

callUsingCall(xxx);

callUsingBind(xxx.bind(document));
}

谢谢,

塞巴斯蒂安·P。

最佳答案

我认为没有任何“最佳”做法。

如果您调用的函数关心this 是什么,您可以使用call

如果您想确保函数只能this的指定值调用,您可以使用bind

[两者都有一些开销,即至少一个函数调用深度/作用域]

否则你只需调用该函数。

简单 :)

关于Javascript 函数调用 : Regular call vs Call vs Bind Call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523012/

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