JavaScript 对象 : access variable property by name as string

标签 javascript object

如果我有一个如下所示的 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(不是 nullfalse):

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/

相关文章:

javascript - 如果我在 ajax 调用中使用两个变量,则获取 null 值

javascript - 表格行中的超链接问题

java - 使用调用另一个类的 getter 并将该类作为格式化字符串返回?

javascript - 从对象中选取给定属性的值到数组中

javascript - 在 Javascript 中将字符串转换为对象

javascript - 从对象数组生成特定对象

javascript - 通过均匀分布值有效地合并两个数组

javascript - 如何停止跳转到 Angular-UI Bootstrap 模式窗口之外的元素?

javascript - Material UI Select Component - 一个组件正在将文本类型的受控输入更改为不受控制

javascript - 立即实例化 JavaScript 对象和调用方法