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 相关文章推荐
javascript 对表格的行和列都能加亮显示
Dec 26 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
javascript三元运算符用法实例
Apr 16 Javascript
JavaScript中常见的字符串操作函数及用法汇总
May 04 Javascript
JS+CSS实现的拖动分页效果实例
May 11 Javascript
AngularJS表单详解及示例代码
Aug 17 Javascript
详解Vue监听数据变化原理
Mar 08 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
Apr 21 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
JavaScript实现手风琴效果
Feb 18 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
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python基于select实现的socket服务器
2016/04/13 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
考博专家推荐信模板
2013/12/02 职场文书
党课培训心得体会
2014/09/02 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
心理健康教育主题班会
2015/08/13 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL