简体   繁体   English

如何在js中将对象放在HashMap中?

[英]How to put object in a HashMap in js?

I create Simple HashMap like this , but When I put an object into this map as a value , I can't call object's function when I get it from map , I find that the object was convert to string by toString function. 我像这样创建Simple HashMap ,但是当我将一个object作为一个value放入这个map时,我从map中得到它时无法调用object's function ,我发现该object是通过toString函数转换为string的。 So what should I do to put the object itself rather than a string into map? 那么我应该怎样做才能将object itself而不是字符串放入地图中?

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]}
}

I put the object like this: 我把对象放在这样:

g_itemMap.put(1, object);

And get it: 得到它:

var object = g_itemMap.get(1);

When I call it's function , it went wrong: 当我调用它的功能时,它出错了:

object.somefunction();

alert can display object: 警报可以显示对象:

[object BitmapItem]

This code looks like working for me. 这段代码看起来像是在为我工作。 You can try this; 你可以试试这个;

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();

Fiddle link: http://jsfiddle.net/hCH8k/ 小提琴链接: http//jsfiddle.net/hCH8k/

var HashMap = new Object();
HashMap[Key1] = Obj1;
HashMap[Key2] = Obj2;

function get(k)
{
    console.log(HashMap[k]);
}

or simply you can use 或者只是你可以使用

var HashMap = {"Key1":"value1","Key2":"value2"}
function get(k)
{
   console.log(HashMap[k]);
}

If I try 如果我试试

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();

does alert('b'), which looks correct, to me... :-) 警告('b'),看起来是正确的,给我...... :-)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM