创建对象主要的两种形式,创建Object实例和创建对象字面量
对象包含属性和方法
数据属性有四个特性,特性是为了描述属性行为的,他们是:
Configurable(可配置的)是否能删除或是否能修改为访问器属性
Enumerable(枚举)是否能够for-in
Writeable(可写)能否修改属性值
Value(值)默认为undefined,从这个位置上读数据或把新值保存到这个位置上
eg:
var person = {}';
Object.defineproperty(person,"name",{writeable:false,value:"fff"});//person.name变成只读。
不过要注意使用Object.defineproperty()中的configurable:false后属性就成为不可配置的了,不能使用除writeable以外的其他特性了,也不能通过:true再改回来,
访问器属性有四个特性:
Configurable
Enumreable
Get(读取)读取时使用,默认undefined
Set(写入)写入时使用,默认undefined
在严格模式下必须同时使用set和get
创建对象的模式:
工厂模式,构造函数模式
工厂模式:解决了创建多个对象的问题,没解决检测对象类型的问题
function a (name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name);
};
return o;
};
var b = a("nihao",22,"famer");