创建对象主要的两种形式,创建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");