一尘不染

JavaScript对象:按名称作为字符串访问变量属性

javascript

如果我有一个如下所示的javascript对象

var columns = {
  left: true,
  center : false,
  right : false
}

我有一个既传递对象又传递属性的函数,像这样

//should return false
var side = read_prop(columns, 'right');

身体read_prop(object, property)会是什么样?


阅读 420

收藏
2020-04-22

共1个答案

一尘不染

您不需要它的功能-只需使用括号符号即可:

var side = columns['right'];

这等于点表示法,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}};

您可以访问财产xc,如下所示:

var cx = foo['c']['x']

如果未定义属性,则将尝试引用该属性undefined(不是nullfalse):

foo['c']['q'] === null
// returns false

foo['c']['q'] === false
// returns false

foo['c']['q'] === undefined
// returns true
2020-04-22