如果我有一个如下所示的javascript对象
var columns = { left: true, center : false, right : false }
我有一个既传递对象又传递属性的函数,像这样
//should return false var side = read_prop(columns, 'right');
身体read_prop(object, property)会是什么样?
read_prop(object, property)
您不需要它的功能-只需使用括号符号即可:
var side = columns['right'];
这等于点表示法,var side =columns.right;除了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}};
您可以访问财产x的c,如下所示:
x
c
var cx = foo['c']['x']
如果未定义属性,则将尝试引用该属性undefined(不是null或false):
undefined
null
false
foo['c']['q'] === null // returns false foo['c']['q'] === false // returns false foo['c']['q'] === undefined // returns true