一个简单的对象
var person={
name:"aa",
sayName:function(){alert(this.name)}
}
每当new一个person对象都有相同的属性和方法。这些属性在创建时都带有一些特征值
ECMAScript中有两种属性数据属性和访问器属性。
1.数据属性
[[Configurable]]:表示能否通过delete删除属性,能否修改属性,默认true
[[Emumerable]]:是否可枚举,遍历 for-in
[[Writable]]:修改属性的值
[[Value]]:包含这个数据属性的值
要修改默认的特性,必须用es5 Object.defineProperty() 方法
var person = {};
Object.defineProperty(person, "name", {
writable: false,
value: "aa"
});
console.log(person.name);//aa
person.name="bb";
console.log(person.name)//aa
2.访问器属性
[[Configurable]]:表示能否通过delete删除属性,能否修改属性,默认true
[[Emumerable]]:是否可枚举,遍历 for-in
[[Get]]:在读取的时候调用的函数,默认undefined
[[Set]]:在写入的时候调用的函数,默认undefined
读取属性的特性可以使用Object.GetOwnPropertyDescriptor()方法