ES6 javascript中class类的get与set用法实例分析


Posted in Javascript onOctober 30, 2017

本文实例讲述了ES6 javascript中class类的get与set用法。分享给大家供大家参考,具体如下:

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

class MyClass {
  constructor() {
    // ...
  }
  get prop() {
    return 'getter';
  }
  set prop(value) {
    console.log('setter: ' + value);
  }
}
let inst = new MyClass();
inst.prop = 123;
// setter: 123
inst.prop
// 'getter'

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

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

class CustomHTMLElement {
  constructor(element) {
    this.element = element;
  }
  get html() {
    return this.element.innerHTML;
  }
  set html(value) {
    this.element.innerHTML = value;
  }
}
var descriptor = Object.getOwnPropertyDescriptor(
  CustomHTMLElement.prototype, "html");
"get" in descriptor // true
  "set" in descriptor // true

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

更多相关内容可查看本站专题:《ECMAScript6(ES6)入门教程》、《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript错误与调试技巧总结》及《javascript面向对象入门教程》

希望本文所述对大家基于ECMAScript的程序设计有所帮助。

Javascript 相关文章推荐
js中运算符&& 和 || 的使用记录
Aug 21 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
Jun 23 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
Node.js Express安装与使用教程
May 11 Javascript
详解CommonJS和ES6模块循环加载处理的区别
Dec 26 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 Javascript
js+h5 canvas实现图片验证码
Oct 11 Javascript
Javascript中的奇葩知识,你知道吗?
Jan 25 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 #jQuery
简单实现jQuery弹窗效果
Oct 30 #jQuery
Bootstrap栅格系统的使用详解
Oct 30 #Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 #Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 #Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 #Javascript
vue中的scope使用详解
Oct 29 #Javascript
You might like
深入array multisort排序原理的详解
2013/06/18 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
php+mysql数据库查询实例
2015/01/21 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
办公室驾驶员岗位职责
2013/11/15 职场文书
优秀教师先进事迹
2014/01/22 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
大学生社会实践方案
2014/05/11 职场文书
生日庆典策划方案
2014/06/02 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
解决MySQL报“too many connections“错误
2022/04/19 MySQL