如果我有一个如下所示的 javascript 对象
var columns = {
left: true,
center : false,
right : false
}
我有一个函数,它既传递了对象,又传递了一个像这样的属性名称
//should return false
var side = read_prop(columns, 'right');
read_prop(object, property)
的主体会是什么样子?
最佳答案
您不需要函数 - 只需使用 bracket notation :
var side = columns['right'];
这等于 dot notation , var side = columns.right;
,除了 right
也可以来自变量、函数返回值等,使用括号表示法。
如果你需要一个函数,这里是:
function read_prop(obj, prop) {
return obj[prop];
}
要回答以下与原始问题不直接相关的一些评论,可以通过多个括号引用嵌套对象。如果您有这样的嵌套对象:
var foo = { a: 1, b: 2, c: {x: 999, y:998, z: 997}};
你可以访问c
的属性x
,如下:
var cx = foo['c']['x']
如果一个属性未定义,尝试引用它会返回 undefined
(不是 null
或 false
):
foo['c']['q'] === null
// returns false
foo['c']['q'] === false
// returns false
foo['c']['q'] === undefined
// returns true
关于JavaScript 对象 : access variable property by name as string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4255472/