ES6的getter和setter用法

set __proto__get __proto__是Object原型链的方法,设置访问器要重写此方法

image.png

语法

get [属性名]{}
get [属性名]{}
const language = {
  current: "javascript",
  lang: "javascript",
  get current() {
    // return 12;
  },
  set current(lang) {
    // this.current = lang; //递归了堆栈溢出
    this.lang = lang;
  },
};
console.log(language);
language.current = "go";
console.log(language); //go
console.log(language.current); //undefined
class Lang {
  language = "javascript";
  get language() {
    console.log("get");
    return "java";
  }
  set language(lang) {
    this.lang = lang;
  }
}
const l = new Lang();
console.log((l.language = 4));
console.log(l); //{language:4}

getter

访问属性的时候调用此方法,不能设置形参, 否则报错,有返回值

setter

设置属性的时候调用此方法,不能设置形参,否则报错

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 看了阮老师的《ECMAScript 6 入门》教程,为了之后方便自己随时查看,将...操作符相关的内容整理在一起。...
    木A木阅读 10,617评论 0 8
  • 学习vue的语法之前,首先要掌握一些ES6的新语法,以便更容易理解vue中的一些编程风格。 1. 变量与常量的声明...
    yangsg阅读 4,223评论 0 3
  • Symbol 1.ES5的对象属性名都是字符串,容易造成命名冲突,ES6引入Symbol机制,以保证每个属性名都是...
    98b8dc01512b阅读 1,891评论 0 0
  • 简介 类的由来 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 上面这种写法...
    IT杨阅读 4,221评论 0 2
  • 来持续学习吧! 此前写了两篇关于 JavaScript 原型以及继承的文章(源自 ULIVZ[https://ju...
    越前君阅读 1,579评论 0 1