javascript对象未定义?

时间:2013-09-05 12:01:57

标签: javascript

我得到“地图未定义”,不知道为什么。
我是否传递了错误的变量,或者myMap是否被错误地声明了?

var myMap = new Object();
$(things).each(function(){
   var thing= this.attributes.things.Value;
   alert("thing= " + thing);
   var totalThings= myMap[thing];
   alert("totalThings= " + totalThings);                
}); 

3 个答案:

答案 0 :(得分:4)

可能会定义myMap,但myMap[thing]不定义(因为它是没有属性的原始对象)。由于你获得值(而不是设置),你会收到错误。

// virgin object
var myObj = new Object();
console.log(JSON.stringify(myObj)); // "{}"

// therefore property "foo" doesn't exist
console.log(myObj['foo']);          // undefined

// but if we add it:
myObj['foo'] = 'bar';

// now it exists
console.log(myObj['foo']);          // "bar"

答案 1 :(得分:0)

你可以做这样的事情

function myMap( thing ){
// properties and defaults 
this.thing = thing || 'default'
}

var myMapInstance = new myMap(whateverTheThingIs); 

答案 2 :(得分:0)

如果是一个字符串,可能是你想要做的事情:

myMap[things] = thing;
alert("totalThings = " + JSON.stringify(myMap, null, 4));