• JavaScript 面向对象的程序设计记录笔记


    以下为JavaScript高级程序设计第六章面向对象的程序设计读书笔记记录。

    对象存在两个属性: 数据属性/ 访问器属性。

      数据属性包括四个值: Configurable: 默认值为true, 表示能否通过delete删除属性重新定义;能否修改属性特性,或者能否吧属性修改为访问器属性。

                Enumable:  表示能否通过for in循环返回属性。默认值为true。

                writable: 表示能否修改属性,默认值为true。

                Value:包含这个属性的数据值。

      访问器属性包括四个值:Configurable: 默认值为true, 表示能否通过delete删除属性重新定义属性;能否修改属性特性,或能否修改为数据属性。

                Enumable: 表示能否通过for in循环返回属性, 默认值为true。

                Get: 在读取属性时调用的函数,默认值为undefined.

                                     Set: 在写入属性时调用的函数,默认值为undefined。

    其中涉及到Object.defineProperty()/Object.defineProperties()/Object.getOwnPropertyDescriptor()等方法。

      object.defineProperty(), 传入三个值,第一个为定义属性的对象,第二个为定义属性的对象属性,第三个为属性描述符。如下:

        var obj = {};

        Object.defineProperty(obj, 'name', {value: 'Tom'});

      object.defineProperties(), 传入两个值,可定义多个属性特性,第一个为定义属性的对象,第二个为定义属性特性的属性健值对,如下:

        var obj = {};

        Object.defineProperties(obj, {

          _year: { value: 123}, // 属性添加‘_’前缀,表示该属性只能通过对象的访问器属性进行访问,即get()/set()方法。

          name: {value: 'Tom'},

          year: {

            get: function(){

              return this._year;

            }

          }

        });

      Object.getOwnPropertyDesciptor(), 表示获取某个属性的描述符(该数据属性或访问器属性),该方法传入两个参数,第一个表示属性所在的对象,第二个表示描述符的属性名称,返回值为一个对象。如下:

      引用上述定义的obj对象,调用Object.getOwnPropertyDescrptor().

      var descriptor = Object.getOwnPropertyDescriptor(obj, _year);

      console.log(descriptor.value); // 输出123

      console.log(descriptor.get);  // 输出undefined  

      var descriptor2 = Object.getOwnPropertyDescriptor(obj, year);  

      console.log(descriptor.value); // 输出undefined

      console.log(descriptor.get);  // 输出function  

        

  • 相关阅读:
    asp iis5.1x 2147467259 (0x80004005)
    asp 编辑 文本框为何会自动多出个逗号?
    asp 调用Recordset对象操作数据库
    windows2003 iis中播放flv格式的视频设置
    金额拆分 "万千百"..
    类似银行交易记录
    太扯了asp
    asp中通过Connection链接数据库
    给被Access过大问题困扰的网站,提供几种解决方案
    六款WEB上传组件性能测试与比较
  • 原文地址:https://www.cnblogs.com/lzj0824/p/6946943.html
Copyright © 2020-2023  润新知