gpt4 book ai didi

javascript - 类型错误 : can't convert undefined to object -- without undefined or object

转载 作者:行者123 更新时间:2023-11-29 10:32:58 25 4
gpt4 key购买 nike

考虑代码

const arr = [];
[1].map(arr.push)

这给出了 TypeError: can't convert undefined to object(至少在 Firefox 上),但是几乎是同义代码

const arr = [];
[1].map(v => arr.push(v))

工作正常。

正如托马斯·巴宾顿·麦考利 (Thomas Babington Macaulay) 在他对伊拉斯谟 (Erasmus) 作品的评论中所写的那样,“这……是什么?”

最佳答案

那是因为 arr.push 只是对未绑定(bind)到 arr 的通用函数的引用。

因此,当作为回调调用时,它不知道您要推送到哪个数组

var func = [].push;
func(123); // TypeError: can't convert undefined to object

这会起作用,但是多个参数将传递给 push,您可能不希望这样

const arr = [];
[1, "a"].map(arr.push.bind(arr)); // [ 3, 6 ]
arr; /* [ 1, 0, [1, "a"],
"a", 1, [1, "a"] ] */

所以只需使用您的[1].map(v => arr.push(v))

关于javascript - 类型错误 : can't convert undefined to object -- without undefined or object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41909345/

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