我怎么能解决这个问题“Uncaught TypeError:无法读取属性'获取'未定义”

时间:2016-09-25 17:56:58

标签: javascript jquery

Map = function() {
  this.map = new Object();
};
Map.prototype = {
  put: function(key, value) {
    this.map[key] = value;
  },
  get: function(key) {
    return this.map[key];
  }
}; //skip details

 var _members = new Array(5);
 for (var i = 0; i < 5; i++) {
     var map = new Map();
     map.put("id", "hello");
     _members[i] = map;
   }

for (var i = 0; i < _members.length; i++) {
  var m = new Map();
  m = _members[i];
  alert(m.get("id")); //oops

}

请帮帮我。 我想在数组中使用hashmap。但错误被装入alert()行 无论使用pop()进行封装 我不知道我能做什么。等待答复:)

1 个答案:

答案 0 :(得分:0)

为什么要尝试实现Javascript中已存在的标准数据类型。

尝试使用es2015中的Map

但如果你坚持实施它,它将起作用:

MyMap = function() {
  this.map = new Object();
};
MyMap.prototype = {
  put: function(key, value) {
    this.map[key] = value;
  },
  get: function(key) {
    return this.map[key];
  }
}; //skip details

 var _members = new Array(5);
 for (var i = 0; i < 5; i++) {
     var map = new MyMap();
     map.put("id", "hello");
     _members[i] = map;
   }

for (var i = 0; i < _members.length; i++) {
  m = _members[i];
  alert(m.get("id")); // no oops
}