Javascript 如何在js中将对象放入HashMap?
我像这样创建了一个简单的Javascript 如何在js中将对象放入HashMap?,javascript,Javascript,我像这样创建了一个简单的HashMap,但是当我把对象作为值放到这个映射中时,我不能调用对象的函数,当我从映射中得到它时,我发现对象被toString函数转换成字符串。那么,我应该怎么做才能将对象本身而不是字符串放入映射中呢 var g_itemMap = { put : function(key,value){this[key] = value}, get : function(key){return this[key]}, contains : function(ke
HashMap
,但是当我把对象作为值
放到这个映射中时,我不能调用对象的函数
,当我从映射中得到它时,我发现对象
被toString
函数转换成字符串。那么,我应该怎么做才能将对象本身
而不是字符串放入映射中呢
var g_itemMap =
{
put : function(key,value){this[key] = value},
get : function(key){return this[key]},
contains : function(key){return this.get(key) == null?false:true},
remove : function(key){delete this[key]}
}
我把物体放在下面:
g_itemMap.put(1, object);
并得到它:
var object = g_itemMap.get(1);
当我调用它的函数时,它出错了:
object.somefunction();
警报可以显示对象:
[object BitmapItem]
这个代码看起来对我有用。
你可以试试这个
var g_itemMap =
{
put : function(key,value){this[key] = value},
get : function(key){return this[key]},
contains : function(key){return this.get(key) == null?false:true},
remove : function(key){delete this[key]}
}
var object =
{
objectfunction: function(){
console.log('objectfunction called')
}
}
g_itemMap.put(1, object);
var o = g_itemMap.get(1);
o.objectfunction();
小提琴链接:
或者你可以简单地使用
var HashMap = {"Key1":"value1","Key2":"value2"}
function get(k)
{
console.log(HashMap[k]);
}
如果我尝试
var object = { a: function() { alert('b'); } };
var g_itemMap =
{
put : function(key,value){this[key] = value},
get : function(key){return this[key]},
contains : function(key){return this.get(key) == null?false:true},
remove : function(key){delete this[key]}
}
g_itemMap.put(1, object);
var object2 = g_itemMap.get(1);
object2.a();
在我看来,警报('b')正确吗…:-) 在代码中,您将对象放在何处?您确定没有意外地将对象作为键而不是值放在代码中吗?Javascript会自动将对象属性名称强制为字符串,但它不会对值执行类似的操作。可能我的对象有一些错误。我的方法是corret。您的所有代码都是corret。我在使用revert函数时删除了我的对象:-)
var object = { a: function() { alert('b'); } };
var g_itemMap =
{
put : function(key,value){this[key] = value},
get : function(key){return this[key]},
contains : function(key){return this.get(key) == null?false:true},
remove : function(key){delete this[key]}
}
g_itemMap.put(1, object);
var object2 = g_itemMap.get(1);
object2.a();