无法将功能传递给`map`

时间:2018-05-27 23:09:47

标签: javascript

我在Chrome开发工具中看到以下行为:

var $el = $("<div>", { "data-row-idx": 1, "data-col-idx": 2 })
// n.fn.init [div]

$el.data("row-idx")
// 1

$el.data("col-idx")
// 2

["row-idx", "col-idx"].map(function(x) { return $el.data(x) })
// (2) [1, 2]

["row-idx", "col-idx"].map($el.data)
// jquery.min.js:3 Uncaught TypeError: this.each is not a function
//     at data (jquery.min.js:3)
//     at Array.map (<anonymous>)
//     at <anonymous>:1:24
// data @ jquery.min.js:3

[1,2,3].map(function(x) { return x})
// (3) [1, 2, 3]

codepen link

我想:

["row-idx", "col-idx"].map(function(x) { return $el.data(x) })

["row-idx", "col-idx"].map($el.data)

是等价的。这不是这样吗?

0 个答案:

没有答案