当前位置: 首页 > 面试题库 >

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

康恩
2023-03-14
问题内容

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

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

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

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

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


问题答案:

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

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


 类似资料:
  • 问题内容: 我有一个包含变量名称的字符串。我想获取该变量的值。 是否有可能访问该值使用? 问题答案: 我建议您改用: 通过执行操作创建地图 然后改变 至 并使用访问值

  • 问题内容: 有没有办法在Javascript中将变量名作为字符串获取?喜欢 我想这样做: 更新 我正在尝试使用JavaScript连接浏览器和另一个程序。我想将实例名称从浏览器发送到另一个程序以用作回调方法: 从另一个程序: 问题答案: 通常,在需要将名称映射到某个值并能够同时检索两者的情况下,可以使用哈希表。

  • 问题内容: 为什么JavaScript不允许模板字符串作为对象属性键?例如,当我输入: 到NodeJS REPL中,它会引发带有长堆栈跟踪的“意外模板字符串”。属性值很好,但是,这并不出乎意料。浏览器中也会发生类似的错误,例如Firebug抛出一个带有“无效属性ID”的错误。 “计算的属性名称”中允许使用模板字符串。例如,这在所有支持以下语法的浏览器中都可以完美编译: 并创建对象。 为什么不允许模

  • 问题内容: 我想使用变量的值来访问对象。 假设我有一个名为myobject的对象。 我想用此名称填充变量,然后使用该变量访问对象。 例: 问题答案: 全球: 全球:v2 本地:v1 本地:v2

  • 问题内容: 我正在使用jQuery从DOM中提取项目,并希望使用DOM元素的对象设置属性。 例 如果包含一个元素为“ myId” 的元素,我想拥有一个名为“ myId”的属性。以上给了我。 如何使用JavaScript使用变量来命名对象的属性? 问题答案: 您可以使用以下等效语法:

  • 问题内容: 根据官方的JavaScript文档,您可以使用整数定义对象文字属性名称: 此外,您可以使用数字或字符串文字作为属性的名称。 像这样: 我的问题是,如何引用以整数作为名称的属性?我尝试了平常的尝试,但是遇到了错误。我能想到的唯一解决方法是使用循环。有什么建议? 问题答案: 您可以像引用数组一样引用对象的属性,并使用或