面向对象设计-----属性类型 读取属性特性

来源:互联网 发布:mac模拟人生2中文 编辑:程序博客网 时间:2024/06/15 10:22

var  person = new   Object();

person.name ="ni";

person.head=29;

person.sayName=function(){
alert(this.name);

}

类对象有数据属性含访问器属性

修改数据属性默认特性:使用Object.defineProperty()方法

Object.defineProperty(person,"name",{writable:false,configurable:false;value:"aa"})//第一个参数是属性所在对象,第二个参数是属性,第三个参数是一系列描述

访问器属性:包含一对getter函数和setter函数

Object.defineProperty(book,"year",{

get:function(){

   return   this._year;

},

set:function()){

if(newValue>2004){

  this.year = newValue;

  this.edition+= newValue-2004;
}

}

});


读取属性的特性----

var   book={};

Object.defineProperties(book,{

_year:{

     value:2004//等于设置最初始的值

},

edition:{

       value:1

},

year:{

   get:function(){

       return   this._year;

    }.

   set:function(newVlaue){

         if(newValue>2004){

         this._year = newVlaue; 

          this.edition+= newValue-2004;

    }

  }

 }

});


var     descriptor = Object.getOwnPropertyDescriptor(book,"_year");

alert(descriptor.value);//2004

alert(descriptor.confi  gurable);//false;