对象名称为字符串

时间:2011-03-14 19:36:25

标签: jquery string object

jQuery中有没有办法将对象的名称作为字符串?

即。如果我有

markers.events = {
    click: function(event){},
    drag: function(event){}
};

我想要一个字符串"click""drag"

这可能在$.each(myObj, function(){})内吗?

我需要对上述目标进行以下操作(希望如此):

$.each(markers.events, function(i, event){
    google.maps.event.addListener(marker, "click/drag", event);
})

3 个答案:

答案 0 :(得分:1)

您可以使用window["myObj"],但它仅适用于全局变量。

答案 1 :(得分:1)

对象本身没有名称。如果你这样做:

var x = {};

然后将创建一个对象,变量x将引用它。但是,对象的名称不是'x'。这个对象是无名的。

您甚至可以声明另一个变量并将其引用设置为同一个对象:

var y = x;

现在x和y都包含对同一(无名)对象的引用。

您想要的是根据其标识符名称对变量的名称进行字符串化。这是不可能做到的。


<强>更新

$.each回调的第一个参数包含属性的名称:

$.each(markers.event, function(i, v) {
    google.maps.event.addListener(marker, i, v);
});

现场演示: http://jsfiddle.net/simevidas/SKZKv/

答案 2 :(得分:0)

你会很好地解释为什么你需要这个,所以我们可以帮助更好,但你可以做这样的事情:

var myVars = {
    "myVar1": "Yaay",
    "myVar2": "Yaay again"
};

for(var a in myVars){
    alert("Variable name: "+a);
}