如果我修剪数组中的每个字符串,
[' a ',' b','c '].map(i=>i.trim())
有效。
但[' a ',' b','c '].map(''.trim.call)
会导致Uncaught TypeError: undefined is not a function
。
我认为它应该有用......?
答案 0 :(得分:2)
您需要bind
call
至String.prototyp.trim
[' a ',' b','c '].map(''.trim.call.bind(''.trim))
[' a ',' b','c '].map(Function.prototype.call.bind(''.trim))
现在您只需获取Function.prototype.call
,然后使用undefined
上下文
const call = Function.prototyp.call
[' a ',' b','c '].map(call)
所以每个步骤都是call(item, index, array)
而call
使用this