• JavaScript get set方法 ES5/ES6写法


    网上鲜有get和set的方法的实例,在这边再mark一下。

    get和set我个人理解本身只是一个语法糖,它定义的属性相当于“存储器属性”

    为内部属性提供了一个方便习惯的读/写方式

    ES5写法

     1 function Number(num) {
     2   this._num = num           //这里的_num和get/set方法num()不能重名
     3 }
     4 
     5 //get/set方法使用同一个命名,增加可读性
     6 Number.prototype = {
     7   get num() {
     8     return this._num;
     9   },
    10   
    11   set num(num) {
    12         this._num = num;
    13   }
    14 }
    15 
    16 var test = new Number(8);
    17 console.log(test.num);
    18 test.num = 88;
    19 console.log(test.num);

    输出:

    >8

    >88

    在这里,定义了Number类的一个值_num,再原型中注入set和get方法,此时就可以使用test.num取值和赋值,更加直观。

    ES6写法

    再看看用ES6中class的实现:

     1 class Num {
     2   constructor(num) {
     3         this._num = num;
     4   }
     5   
     6   get num() {
     7     return this._num;
     8   }
     9   
    10   set num(num) {
    11     this._num = num;
    12   }
    13   
    14 }
    15 
    16 var test = new Num(9);
    17 console.log(test.num);
    18 test.num = 99;
    19 console.log(test.num);

    输出:

    >9

    >99

  • 相关阅读:
    HDU
    2015 NCPC Problem G-Goblin Garden Guards
    二分答案
    多校 HDU-6312 Game (博弈)
    唯一分解定理
    欧拉函数
    发布系统遇到的问题解决
    ASP.Net数据导出Excel的几种方法
    项目管理计划书模版
    sql server2008附加数据库5120错误
  • 原文地址:https://www.cnblogs.com/ljwTiey/p/7387598.html
Copyright © 2020-2023  润新知