bal*_*afi 78 javascript properties object-literal
是否可以在对象文字属性中使用变量名来创建对象?
例
function createJSON (propertyName){
return { propertyName : "Value"};
}
var myObject = createJSON("myProperty");
console.log(myObject.propertyName); // Prints "value"
console.log(myObject.myProperty); // This property does not exist
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 164
如果在ES6中要将变量用于属性名称,则可以使用新的ComputedPropertyName语法.将变量名放在方括号之间:
var foo = "bar";
var ob = { [foo]: "something" }; // ob.bar === "something"
Run Code Online (Sandbox Code Playgroud)
在ES5中,您必须首先创建对象,然后使用方括号表示法添加属性.
var foo = "bar";
var ob = {};
ob[foo] = "something"; // === ob.bar = "something"
Run Code Online (Sandbox Code Playgroud)
如果您想以编程方式创建JSON,则必须将对象序列化为符合JSON格式的字符串.例如,用这种JSON.stringify方法.
Ori*_*iol 40
ES6引入了计算属性名称,允许您这样做
function CreateJSON (propertyName){
var myObject = { [propertyName] : "Value"};
}
Run Code Online (Sandbox Code Playgroud)
注意浏览器支持目前可以忽略不计.
你可以这样做:
var myObject = {};
CreateProp("myProperty","MyValue");
function CreateProp(propertyName, propertyValue)
{
myObject[propertyName] = propertyValue;
alert(myObject[propertyName]); // prints "MyValue"
};
Run Code Online (Sandbox Code Playgroud)
我自己更喜欢这种语法:
function jsonObject()
{
};
var myNoteObject = new jsonObject();
function SaveJsonObject()
{
myNoteObject.Control = new jsonObject();
myNoteObject.Control.Field1= "Fred";
myNoteObject.Control.Field2= "Wilma";
myNoteObject.Control.Field3= "Flintstone";
myNoteObject.Control.Id= "1234";
myNoteObject.Other= new jsonObject();
myNoteObject.Other.One="myone";
};
Run Code Online (Sandbox Code Playgroud)
然后你可以使用以下内容:
SaveJsonObject();
var myNoteJSON = JSON.stringify(myNoteObject);
Run Code Online (Sandbox Code Playgroud)
注意:这使用了来自这里的json2.js:http://www.json.org/js.html
小智 5
可能适合的一件事(现在JSON功能对于较新的浏览器是常见的,而json2.js是完全有效的回退),是构造一个JSON字符串然后解析它.
function func(prop, val) {
var jsonStr = '{"'+prop+'":'+val+'}';
return JSON.parse(jsonStr);
}
var testa = func("init", 1);
console.log(testa.init);//1
Run Code Online (Sandbox Code Playgroud)
请记住,JSON属性名称需要用双引号括起来.
| 归档时间: |
|
| 查看次数: |
78920 次 |
| 最近记录: |