Class 的 getter函数和setter函数

与 ES5 一样,ES6 在“类”的内部可以使用getset关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。

  1. class MyClass {
  2. constructor() {
  3. // ...
  4. }
  5. get prop() {
  6. return 'getter';
  7. }
  8. set prop(value) {
  9. console.log('setter: '+value);
  10. }
  11. }
  12. let inst = new MyClass();
  13. inst.prop = 123;
  14. // setter: 123
  15. inst.prop
  16. // 'getter'

上面代码中,prop属性有对应的存值函数和取值函数,因此赋值和读取行为都被自定义了。

存值函数和取值函数是设置在属性的 Descriptor 对象上的。

  1. class CustomHTMLElement {
  2. constructor(element) {
  3. this.element = element;
  4. }
  5. get html() {
  6. return this.element.innerHTML;
  7. }
  8. set html(value) {
  9. this.element.innerHTML = value;
  10. }
  11. }
  12. var descriptor = Object.getOwnPropertyDescriptor(
  13. CustomHTMLElement.prototype, "html"
  14. );
  15. "get" in descriptor // true
  16. "set" in descriptor // true

上面代码中,存值函数和取值函数是定义在html属性的描述对象上面,这与 ES5 完全一致。

es6 Class 的 getter函数和setter函数相关推荐

  1. 在C ++中使用getter和setter函数创建具有X和Y轴的类Point

    We have two declare a point class with two Axis X and Y and we have to create/design its getter and ...

  2. ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries......

    2015年6月17日 ECMAScript 6发布正式版本 前面介绍基本语法,  后面为class用法及属性方法.set.symbol.rest等语法. 一.基本语法:  1.         定义变 ...

  3. 石川es6课程---13-16、generator-认识生成器函数

    石川es6课程---13-16.generator-认识生成器函数 一.总结 一句话总结: ` generator函数,中间可以停,到哪停呢,用 yield 配合,交出执行权 ` 需要调用next() ...

  4. Spring基于Setter函数的依赖注入(DI)

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/dependency-injection/spring-setter-based-dependenc ...

  5. ES6基础(var let const 箭头函数)-学习笔记

    文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...

  6. ES6——let、参数增强、箭头函数、模板字符串、for of和解构

    ECMA -> ECMAScript -> ES标准规范 ES6: js的第6套标准规范 一. let 1.1 let特点 1.2 let底层原理 块级作用域:解决全局污染 var let ...

  7. ES6高级:扩展运算符,箭头函数,class类,iterator迭代器

    2. 扩展运算符 ... 2.1 reset参数 reset参数==必须放在最后==,为了替代arguments,在函数形参中使用,==接受剩余参数==,以==数组==的形式去接受 //1. rese ...

  8. es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别

    作者:長安曹公子 文章出处:ES6 - 箭头函数.箭头函数与普通函数的区别 一.基本语法 ES6中允许使用箭头=>来定义箭头函数,具体语法,我们来看一个简单的例子: // 箭头函数 let fu ...

  9. ES6学习笔记二arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

最新文章

  1. cocos 2dx 一 核心类关系
  2. JDK的安装与环境变量配置
  3. webpack 生成dist,打zip包
  4. [译]CSS3实现柱状图的3D立体动画效果
  5. 浏览器兼容性问题-JSDOM(转)
  6. imageView 的contentMode问题
  7. 学习图(最短路径)算法
  8. java socket wex5,在wex5中如何一行代码更新数据
  9. Unable to read entire header,0 bytes read;expected 512 bytes
  10. 教程|最新空白昵称与透明头像设置方法教程,让自己在微信中隐藏掉
  11. 突破领英限制如何查找非好友电话,邮箱技巧
  12. 项目管理笔记-第十二章 项目采购管理
  13. ArithmeticException - 没有可确切表示的小数结果
  14. Dump文件分析 - PDB强制匹配流程
  15. 【Qt】Q_INIT_RESOURCE的使用
  16. 查看mysql数据库连接数、并发数相关信息
  17. ArcGIS Enterprise托管服务/托管服务器/托管数据库-之“托管”理解
  18. Java UDP通讯的简单实现
  19. AV终结者技术大曝光(另附AV终结者10大死法)
  20. 你掌握了数控开料机维护和安全操作的重要性了吗?

热门文章

  1. centos搭建rsync服务!
  2. 【zookeeper系列】centos7安装zookeeper
  3. 在eclipse中安装svn插件
  4. java webservice 接收数据_WebService客户端,接收数据解析存入数据库
  5. CSDN上传资源时一直提示 请填写资源tag
  6. 通过建站学运维1901-08任务
  7. js创建对象的几种方式
  8. 冲浪科技获Ventech China数百万美元天使轮融资,发力自动驾驶行业
  9. Codeforces 839B - Game of the Rows
  10. Unterminated lt;c:forEach tag