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代码
May 22 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
jQuery实现锚点scoll效果实例分析
Mar 10 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
Web安全之XSS攻击与防御小结
Dec 13 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
JavaScript 预解析的4种实现方法解析
Sep 03 Javascript
p5.js实现简单货车运动动画
Oct 23 Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 Javascript
微信小程序使用前置摄像头拍照
Oct 22 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
JavaScript 比较时间大小的代码
2010/04/24 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
安装python及pycharm的教程图解
2019/10/10 Python
详解Python 最短匹配模式
2020/07/29 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
中英文自我评价常用句型
2013/12/19 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
副处级干部考察材料
2014/05/17 职场文书
选秀节目策划方案
2014/06/06 职场文书
大学生学习计划书
2014/09/15 职场文书
水电施工员岗位职责
2015/04/11 职场文书
最美乡村教师观后感
2015/06/11 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书