【发布时间】:2014-09-27 19:17:32
【问题描述】:
我有我的自定义类,我想将它存储到地图集合中,但是当我想从地图中获取一个值(我的对象的一个实例)时,我得到了对象未定义的错误。有没有可能投射物体或其他东西?如果我推送简单的字符串而不是我的自定义类的对象,一切都很好。有人可以告诉我如何解决这个问题吗?当然如果这个问题能解决的话。
js:
function CustomClass(first, second, third){
this.one = first;
this.two = second;
this.three = third;
}
CustomClass.prototype.constains(obj1, obj2){}
...
var dictionary = new Object();
dictionary[key] = CustomClass(1, "lel", 2);
for(var el in dictionary) //here IE debugger shows that I have a right key, but the value is undefined.
{
if(dictionary[el].contains(something))
{...}
}
如果取决于我使用 IE10。感谢您的帮助和提示!
编辑:
如果我使用
dictionary[key] = new CustomClass(1, "lel", 2);
代替:
dictionary[key] = CustomClass(1, "lel", 2);
它有效,但有人可以告诉我原因,如下所示:
dictionary[key] = "lel";
没有 new 操作符可以工作吗?据我所知,js 中的所有内容都是一个对象,那么 beetwen 插入字符串和自定义类有什么区别? (我是 js 新手,见识不好,见谅)
【问题讨论】:
-
你的语法不对,你没有用
new调用CustomClass,能发个demo重现问题吗?试试jsfiddle.net -
var elem[key] =看起来不对 -
@elclanrs 哇,谢谢你的快速回答,如果我添加一个新的它可以工作:) var elem[key] = new CustomClass(1, "lel", 2);而不是 var elem[key] = CustomClass(1, "lel", 2);但是你能告诉我为什么,像这样: var elem[key] = "lel";没有新运营商的作品?据我所知,js 中的所有内容都是一个对象,那么 beetwen 插入字符串和自定义类有什么区别? (我是 js 新手,很抱歉我的知识不好)
-
什么是
elem?你还没有声明。另外,正如大卫所说,你不应该在elem[key] =前面使用var -
@Alnitak 抱歉,我没有注意到我解决了这个问题。它应该是 dictionary[key] = ..
标签: javascript collections map undefined