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解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
js的Prototype属性解释及常用方法
May 08 Javascript
点击表单提交时出现jQuery没有权限的解决方法
Jul 23 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
浅谈javascript 函数表达式和函数声明的区别
Jan 05 Javascript
vue实现列表的添加点击
Dec 29 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
js实现移动端导航点击自动滑动效果
Jul 18 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
Javascript组合继承方法代码实例解析
Apr 02 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模板技术原理【一】
2008/01/10 PHP
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php获取字段名示例分享
2014/03/03 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
js Date概念详细介绍
2013/11/22 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Python实现的石头剪子布代码分享
2014/08/22 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
结婚喜宴家长答谢词
2014/01/15 职场文书
比赛口号大全
2014/06/10 职场文书
护士节活动总结
2014/08/29 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
毕业感言怎么写
2015/07/31 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python