关于文字对象语法的限制
About the limitation of the literal object syntax
我知道literal对象语法的局限性在于名称必须是literal。
顺便说一下,我需要完成以下任务,你推荐我用哪种方式?
我有一个对象obj1,我想遍历它,然后将它传递给另一个函数,该函数只接受类似文字对象的参数。
我只写了一个基本的例子来了解我所要求的基本内容。
问题出现在最后一个循环中,请参阅内联注释。
obj1 = {k1 : 1} // simple literal object
fn = function (json) {
// this function can accept just literal object
console.log("result: ", json); // {key : true}, but I want {k1 : true}
}
for (key in obj1) {
obj = [];
fn ({
key : true // I want the key to be k1 and not key
})
};
只需执行此操作。。。
var obj = {};
obj[key] = true;
fn(obj);
这几乎是你将得到的优雅。请不要使用eval()
。
使用括号表示法将变量用作键。
function fn(obj) {
console.log("result: ", obj);
}
for (var key in obj1) {
var temp = {};
temp[key] = true;
fn (temp);
};
还要注意var
的使用(这样就不会创建全局范围变量(和不同风格的函数声明。
// this function can accept just literal object
没有。函数不关心参数对象是如何构造的。
你可以做
obj = {};
key = "k1";
obj[key] = true;
fn(obj);
另一个只接受类似文字对象的参数的函数。
没有这样的事情。除了创建的那一刻,使用文字创建的对象和以其他方式创建的对象之间没有区别。
for (key in obj1) {
obj = [];
var foo = {};
foo[key] = true;
fn (foo);
};
可以试试这个吗?
for (key in obj1) {
var obj = {};
obj[key] = true;
fn (obj);
};
相关文章:
- 基本对象/原型语法问题
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- 对象文字语法怪异
- 如何访问以数字开头的对象属性(语法错误:意外的标识符)
- ng单击错误:[$parse:syntax]语法错误:令牌'对象'意外,应为[]
- 访问JavaScript对象的正确语法
- JSON数组语法.花括号(对象语法)是严格必要的吗
- ES6 从数组解构为对象的语法
- 语法错误:JSON 分析错误:意外的标识符“对象”
- 为什么不在对象外部使用属性定义语法是语法错误
- JavaScript 语法调用对象属性
- 在哪里可以获得有关 JavaScript 函数的对象参数语法的信息
- 从文本文件加载 Json 对象 - 返回未捕获的语法错误:意外标记“[ ”
- Javascript附加一个对象语法糖
- JavaScript 对象语法
- JavaScript - 模块对象语法
- 对象构造函数语法错误
- 如何在对象内部获取数组,删除双引号并将其作为对象放入 JSON 语法中