在JavaScript中,创建新对象的方法有两种方法:
方法一:
var newObject = {};
方法二:
// object构造器的简洁记法 var newObject = new Object();
在Object构造器为特定的值创建对象封装,或者没有传递值时,它将创建一个空的对象并返回给它。
有四种方法可以将键值赋值给一个对象:
ECMAScript 3兼容方法
1. "点" 语法
// 设置属性 newObject.someKey = "Hello World"; // 获取属性 var key = newObject.someKey;
2.中括号语法
// 设置属性 newObject["someKey"] = "Hello World"; // 获取属性 var key = newObject["someKey"];
下面是只适用于ECMAScript 5 的方式,关于ECMAScript 5的更多信息请查看: http://kangax.github.com/es5-compat-table/
3. Object.defineProperty
// 设置属性 Object.defineProperty(newObject, "someKey", { value : "for more control of the property's behavior", writable : true, enumerable : true, configurable : true });
如果上面的看着麻烦,可以使用下面的简便方式
// 设置属性 var defineProp = function (obj, key, value) { var config = new Object(); config.value = value; Object.defineProperty(obj, key, config); };
使用上述方式,先创建一个空的person对象
var person = Object.create(null);
然后设置各个属性
defineProp(person, "car","Delorean"); defineProp(person, "dateOfBirth","1981"); defineProp(person, "hasBeard",false);
4. Object.defineProperties
// 设置属性 Object.defineProperties(newObject, { "someKey":{ value:"Hello World", writable:true }, "anotherKey":{ value:"Foo bar", writable:true } });
可以用1和2中获取属性的方式获取3和4方式中的属性,具体的使用方法如下:
// 创建赛车司机driver对象,继承于person对象 var driver = Object.create(person); // 为 driver 设置一些属性 defineProp(driver, "topSpeed", "100mph"); // 获取继承的属性 console.log(driver.dateOfBirth); // 获取我们设置的100mph的属性 console.log(driver.topSpeed);
评论