在不执行和结合绑定的情况下使用地图 - JavaScript
Using map without executing and combine bind - JavaScript
谁能告诉我为什么这个 const 是一个函数?以及这个函数是如何像地图一样使用的?我很难理解这段代码:
const something = ['a','b','c'].map.bind([1,2,3]);
谢谢 'Euan Smith' 解释有几种方法可以获取地图 - 我现在检查了一下:
map
是在其原型继承结构上分配的 Array.prototype
类型上的函数。
它只是一个普通的 JS 函数,没有分配给它任何对象。使用 bind
我们将 map 函数绑定到特定对象,此处 [1,2,3]
所以首先 ['a','b','c']
是一种干扰。您将获得与 const something = [].map.bind([1,2,3]);
相同的总体结果。代码的第一部分只是为了获取对数组的 map 方法的引用。使用 Array.prototype.map
可以获得相同的效果,但是 [].map
需要更少的输入。
绑定将此映射函数绑定到数组 [1,2,3]
,这就是 something
指向的映射函数绑定到 [1,2,3]
的版本。例如,如果您调用 something(v=>v*2)
,您将返回 [2,4,6]
。
查看 Array, Array~map, Function and Function~bind 的 MDN 页面了解更多信息。
谁能告诉我为什么这个 const 是一个函数?以及这个函数是如何像地图一样使用的?我很难理解这段代码:
const something = ['a','b','c'].map.bind([1,2,3]);
谢谢 'Euan Smith' 解释有几种方法可以获取地图 - 我现在检查了一下:
map
是在其原型继承结构上分配的 Array.prototype
类型上的函数。
它只是一个普通的 JS 函数,没有分配给它任何对象。使用 bind
我们将 map 函数绑定到特定对象,此处 [1,2,3]
所以首先 ['a','b','c']
是一种干扰。您将获得与 const something = [].map.bind([1,2,3]);
相同的总体结果。代码的第一部分只是为了获取对数组的 map 方法的引用。使用 Array.prototype.map
可以获得相同的效果,但是 [].map
需要更少的输入。
绑定将此映射函数绑定到数组 [1,2,3]
,这就是 something
指向的映射函数绑定到 [1,2,3]
的版本。例如,如果您调用 something(v=>v*2)
,您将返回 [2,4,6]
。
查看 Array, Array~map, Function and Function~bind 的 MDN 页面了解更多信息。