在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);

 

标签: JavaScript对象创建, JavaScript的对象创建及属性设置, JavaScript属性设置, ECMAScript 5

添加新评论