javascript - 如何使用对象的括号表示法和属性名称的字符串向对象添加属性?
问题描述
我想使用括号表示法来编写对象名称,以便我可以通过参数引用它。没关系,但是当我尝试编写属性名称而不将其作为参数传递时遇到了麻烦。重要的是要简单地写出属性名称而不是作为参数传递。什么是正确的语法?
此示例显示了我尝试过的所有语法变体:
var foo = {};
bar('foo', 'cat');
function bar(object, prop) {
// foo[prop] = 5; // = 5. This works, but this isn't the method I want to use.
// [object]cat = 5; // = error
// [object].cat = 5; // = undefined
// [object]['cat'] = 5; // = undefined
// [object][cat] = 5; // = error
console.log('= ' + foo.cat);
}
解决方案
由于foo
被声明为全局变量,窗口对象将在内部包含该对象。
因此,您可以执行以下操作:
window[object]['cat'] = 5;
var foo = {};
bar('foo');
console.log('= ' + foo.cat);
function bar(object) {
window[object]['cat'] = 5;
}
推荐阅读
- vue.js - vue.js 有条件地导入 mixin
- c - 将 uint16_t 转换为 unsigned int
- linux - 如何将我的程序的菜单栏注册到 KDE Plasma 的全局菜单小部件?
- jquery - Kendo Grid MVC 内联编辑基于其他下拉列表自动选择下拉列表值
- python - 仅使用 cmd 安装 Python 并自动添加到路径
- settings - 反应本国/地区
- python - 条形图轴标签字体大小和间距
- java - 在 JSP 中的 <% %> 代码片段中添加链接
- javascript - 使用 Web 音频 API createScriptProcessor 创建高通
- ibm-watson - Watson Studio 解决方案失败未知