用函数结果读取JS中的Object Literal

时间:2011-01-30 00:17:17

标签: javascript object literals

我有一个对象文字:

var content = {
    classname1:"content",
    classname2:"content"
}

以这种方式访问​​content.classname1很容易。但我不想陈述classname1而不是使用函数来获取该类名并将其传递给我的对象:

function getMyClass {
 // some code
 return myclass;
}

content.myclass 

其中myclass是函数的结果。但这不起作用。我不知道如何将content.与函数的结果连接起来。

背景是:我希望工具提示显示在我的网站上几乎翻转。因此,一个函数可以找出元素的类,然后从对象文字中显示与其关联的内容。因此管理类名和内容非常简单。

感谢。

3 个答案:

答案 0 :(得分:2)

obj.propertyobj['property']

的语法糖

您可以使用[]表示法而不是点分表示法来访问对象的成员。如果使用括号,则可以在括号之间放置任何计算结果的字符串。这允许您动态指定属性,或使用非有效JavaScript标识符的属性名称...例如obj['2nd property']

所以,试试:

content[getMyClass()]

答案 1 :(得分:0)

function getMyClass {
    // some code
    return "myclass";
}

content["myclass"];

这可能就是你要找的东西。你的问题有点模糊。

或者你可以尝试:

for (var key in content) {
    if (content.hasOwnProperty("key")) {
         addContent(key, content[key]);
    }
}

function addContent(className, content) {
    // do stuff
}

答案 2 :(得分:0)

如果你想使用一个函数(可能有更多的逻辑而不是简单地选择一个属性的值),这是一种方式:

var content = {
  classname1:"contentbbbb",
  classname2:"contentaaaa",
  getClassName : function(which){
    // do stuff, check things
    return this[which];
  }
}

然后你就有了:

content.getClassName('classname1'); // returns 'contentbbbb'