【发布时间】:2021-07-18 04:52:04
【问题描述】:
javascript
console.log([1, 2].map([1, 2].indexOf));
错误:未捕获的类型错误:Array.prototype.indexOf 在 null 或未定义时调用
但是这行得通
console.log([1, 2].map((x) => [1, 2].indexOf(x)));
在 python 中。
print(list(map([1, 2].index, [1, 2])))
这行得通。
那么为什么第一种方法失败了?
【问题讨论】:
-
因为如果您只传递对
indexOf的引用,this上下文就会丢失。 -
我为这个问题添加了书签,因为具有讽刺意味的是,它帮助我解释了 Python 的一个设计决策(需要明确的
self)。也就是说,语言标签应该用于与您实际尝试修复的代码相关的语言,而不是用于提供参考的其他语言的代码。
标签: javascript methods