发表于: 2017-04-28 00:57:17

1 1108


今天完成的事情:

            任务4基础的页面跳转处理
明天计划的事情:

            进行任务5
遇到的问题:

            

            任务4,依然在数据存储状态的改变上出现了难道,不知道如何使用数组对象的方法,要传递的数据该如存储,暂时放弃任务4, 
收获:


     面向对象,

        对象的数据属性:

            Object.defineProperty() 接受三个参数,属性所在的对象,属性的名字,和一个描述符对象,,描述符对对象必要时,confirgurable(是否能通过delete删除属性),enumerable(是否能通过for..in循环返回属性),writable(是否能修改属性值),value (属性的值);前三者默认情况下都为true,value默认是undefined;

        var person = {} ;

       Object.defineProperty(person, "name", {

             confrigurable: false;

             value: "dagou"

});

 console.log(person.name)//dagou;

 delete person.name;

console.log(person.name)//dagou,

 注意,一单设置了confrigurable:false,就不能再把他改成true,此时调用Obejct.definedProeryt()方法修改处writable以外的属性都会报错,


     对象的访问器属性:

              访问器属性必须使用Object.defineProperty()定义,

            访问器属性有4个特性: configurable(是否能通过delete删除), enumerable(是否可通过for...in循环返回属性),set(写入属性时调用的函数,)get(读取属性调用的函数,),set和get的默认值是undefined;

      var  book = {

    _year: 2004,

   edition: 1 

};

Obejct.defineProperty(book, "year", {

        get: function() {

        return this._year;

},

     set: function(newValue) {

       if (newValue > 2004) {

          this._year = newValue;

          this.edition += newValue - 2004;

      }

   }

});

 book.year = 2005;

console.log(book,year)// 2;


定义多个属性: Object.defineProperties() . 接受两个参数,的哥一是对象是要添加和修改的属性对象,第二对象是属性与第一个对象中要添加或者修改的属性一一对应

读取属性的的方法: Object.getOwnProperyDescriptor();读取属性的方法Object.getOwnPropertyDescriptor(); 接受两个参数,属性所在的对象,和要读取其符合描述的属性名称; 返回值是一个对象,如何是访问器属性,这个对象有configurable, enumerable,get,set;

 如果是数据属性,这个对象的属性有configurable, enumerable,writable,value

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

       console.log(descriptor.value)//2004;

      console.log(descirptor.configurable)//false


返回列表 返回列表
评论

    分享到