我有一个对象文字:
var content = {
classname1:"content",
classname2:"content"
}
以这种方式访问content.classname1
很容易。但我不想陈述classname1
而不是使用函数来获取该类名并将其传递给我的对象:
function getMyClass {
// some code
return myclass;
}
content.myclass
其中myclass
是函数的结果。但这不起作用。我不知道如何将content.
与函数的结果连接起来。
背景是:我希望工具提示显示在我的网站上几乎翻转。因此,一个函数可以找出元素的类,然后从对象文字中显示与其关联的内容。因此管理类名和内容非常简单。
感谢。
答案 0 :(得分:2)
obj.property
是obj['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'