【发布时间】:2018-01-31 22:57:32
【问题描述】:
以下代码失败:
array.map(String.prototype.toLowerCase)
抛出Uncaught TypeError: String.prototype.toLowerCase called on null or undefined。确实,this 没有设置,我知道了。
但奇怪的是,下面的代码没有失败地返回一个空字符串数组:
array.map((s) => String.prototype.toLowerCase(s))
知道为什么吗? 请注意,我知道这不是拥有小写字符串数组的方式。我只是想知道为什么这两种方法的行为不同。
也就是说.map(String.prototype.toLowerCase)和.map((s) => String.prototype.toLowerCase(s))有什么区别?我认为是相同的,但显然,它的行为不同。请注意,这里的String.prototype.toLowerCase 可以替换为任何内容。
【问题讨论】:
标签: javascript arrays function functional-programming