gpt4 book ai didi

javascript - Function.prototype.apply 给我留下了 undefined is not a function 错误

转载 作者:行者123 更新时间:2023-12-02 15:46:02 24 4
gpt4 key购买 nike

我有一个简单的 JS 函数,如下所示:

function simple(){

}

当我这样做时,我得到了一个未定义的不是函数错误:

simple.prototype.apply(null,arguments);

但是当我这样做时:

simple.apply(null,arguments);

我没有收到错误消息,到底为什么会这样?

最佳答案

.prototype 对象没有 .apply() 方法,这就是您的第一个示例不起作用的原因。 .apply() 是仅 Function 对象上的方法。请参阅MDN reference for .apply() 。相反,你可以这样做:

functionName.apply(xxx,yyy) 

在某些情况下,您可能会看到原型(prototype)对象上的函数与 .apply() 一起使用,例如:

Array.prototype.slice.apply(xxx,yyy)

但是,这又是在函数上调用 .apply(),因为 Array.prototype.slice 是一个函数。

<小时/>

在您的具体示例中,simple 是一个函数。因此,如果您想使用特定的 this 值调用它和/或向其传递一个参数数组,那么正确的语法是:

simple.apply(xxxx, yyy)

这就是该语法有效的原因 - 因为它是 .apply() 的正确语法。

<小时/>

也许如果您分享您实际想要解决的问题并显示相关代码,我们可以更具体地为您提供帮助。

关于javascript - Function.prototype.apply 给我留下了 undefined is not a function 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194700/

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