【发布时间】:2020-07-21 23:48:47
【问题描述】:
我在让原型映射函数与我的对象中的数组对象一起工作时遇到了一些问题。我收到错误“x() 不是函数”。我知道你不能在对象上使用原型,但对象中的数组应该可以使用 obj.arr.map() 访问。
这是我的代码:
let data = [
{'a':1, 'b':2, 'c':3},
{'a':4, 'b':5, 'c':6},
{'a':7, 'b':8, 'c':9}
]
let mapped = data.map(function(data){
let newMap = {}
newMap['a']=data['a']
newMap['b']=data['b']
return newMap;
});
Mapping.prototype.protoMap = function(){
//I have tried writing it as map.data
let protoMap = map.map(function(map){
let protoMap1 = {}
protoMap1['a'] = map.mappedData['a']
return protoMap1;
});
}
function Mapping(data = []){
this.mappedData = data
};
let map = new Mapping(mapped);
【问题讨论】:
-
你的
protoMap方法中的map.map是什么? -
不确定你的问题,也许是关于你试图用 Mapping 类做什么的澄清,但在你的 protoMap 函数中不要按名称引用
map使用this -
map 是变量的名称,另一个 map 只是 map 函数,事后看来我应该更好地命名它们。基本上我想要做的只是使用原型映射数组对象的键。
-
我很清楚,您正在尝试使用传递给
Mapping构造函数的mapped数组,并且您想要map@987654330 内的mapped数组@? -
没错!使用原型
标签: javascript arrays object prototype higher-order-functions