美文网首页
class中的get set

class中的get set

作者: vivianXIa | 来源:发表于2021-02-12 18:58 被阅读0次

ES6中的class

  • 类的数据类型就是函数 类本身就是指向构造函数
class Point{
}
typeof Point //function
Point === Point.prototype.construcor //true
  • 类的所有方法都定义在prototype属性上面
class Point {
  constructor() {
    // ...
  }

  toString() {
    // ...
  }

  toValue() {
    // ...
  }
}

// 等同于

Point.prototype = {
  constructor() {},
  toString() {},
  toValue() {},
};

//可以直接使用Object.assign合并对象
Object.assign(Point.prototype, {
  toString(){},
  toValue(){}
});

getters & setters

可以通过 get 和 set 关键字来定义 getters 和 setters


class People {
    constructor(name) { //构造函数
          this.name = name;
    }
    get name() {
        return this._name.toUpperCase();
    }
    set name(name) {
        this._name = name;
    }
    sayName() {
          console.log(this.name);
    }
}
var p = new People("tom");
console.log(p.name);    //1 TOM
console.log(p._name);    //2 tom
p.sayName();    //3 TOM

主要是要区分 this._name 和 this.name 的区别。因为我们定义了 name 的读写器,而没有定义 _name 的读写器,所以访问这两个属性的结果是不同的。

但是要注意一点,不要这样写:

set name(name) {
    this.name = name;
}

因为给 this.name 赋值的时候会调用 set name ,这样会导致无限递归直到栈溢出。

相关文章

  • class中的get set

    ES6中的class 类的数据类型就是函数 类本身就是指向构造函数 类的所有方法都定义在prototype属性上面...

  • IDEA @data 没有 get、set 联想提示

    IntelliJ IDEA 中,class 增加@Data标签,但是没有get、set等函数输入联想提示,但是可以...

  • uvm_config_db

    从uvm_resource_db中扩展而来,体现在set()/get()上 class uvm_config_db...

  • T1

    public class Relation{ public Type Type1{get;set;} public...

  • 面向对象一私有属性

    class Person(object): 在对象中,提供set/get方法,来间接的访问对象的私有属性 给私有属...

  • 冒泡排序的拓展(利用泛型和Func委托实现通用排序)

    工人类(例): class Worker(string Name{get;private set;}int Mon...

  • kotlin笔记

    kotlin优势简洁(data class自带get set equals hashCode toString c...

  • swift 中 set 和 get 方法

    相比 Objective-C 中的 set 和 get 方法 ,swift 中的set 和 get 要复杂一点。 ...

  • Swift之get set

    协议中的get set:protocol中属性可以声明为{ get }或者{ get set }。大多数人第一眼肯...

  • ES6-类

    1.类 class能产生对象的东西就叫类。关键字:new,constructor,get,set,extends,...

网友评论

      本文标题:class中的get set

      本文链接:https://www.haomeiwen.com/subject/ekbdxltx.html