gpt4 book ai didi

Javascript:什么时候应该使用 function_name.apply ?

转载 作者:行者123 更新时间:2023-11-29 09:57:03 25 4
gpt4 key购买 nike

很多时候我看到如下语句

 Y.CustomApp.superclass.render.apply(this, arguments);

我知道应用是如何工作的。根据 MDN

Calls a function with a given this value and arguments provided as an array.

但为什么不直接调用方法呢?

最佳答案

您使用 apply() 的原因是以下之一或两者:

  • 您已经获得要以数组或类数组对象的形式传递给函数的参数;
  • 您要确保 this 在函数被调用时以某种特定方式绑定(bind)。

如果您出于某种原因在数组中得到了一个值列表,并且您知道这些值正是要传递给函数的值,您还会做什么?像这样的东西:

if (array.length == 1)
theFunction(array[0]);
else if (array.length == 2)
theFunction(array[0], array[1]);
else ...

显然很糟糕。

如果您知道要将 this 绑定(bind)到某个对象,那么您总是可以将该函数设为该对象的临时属性并通过该对象调用该函数,但这也很糟糕.如果所有您需要做的是绑定(bind)this,并且参数不在数组中,那么您的替代方法是使用.call() 而不是 .apply()

关于Javascript:什么时候应该使用 function_name.apply ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841520/

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