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中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
js实现从中间开始往上下展开网页窗口的方法
Mar 02 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
Nov 11 Javascript
JS基于面向对象实现的拖拽功能示例
Dec 20 Javascript
js制作简单的音乐播放器的示例代码
Aug 28 Javascript
默认浏览器设置及vue自动打开页面的方法
Sep 21 Javascript
node.js使用http模块创建服务器和客户端完整示例
Feb 10 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 Javascript
JS字符串和数组如何实现相互转化
Jul 02 Javascript
vue 使用async写数字动态加载效果案例
Jul 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
文章推荐系统(三)
2006/10/09 PHP
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
PHP多线程类及用法实例
2014/12/03 PHP
PHP实现的简单缓存类
2015/07/29 PHP
php提高网站效率的技巧
2015/09/29 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
JavaScript函数基础详解
2017/02/03 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python负载均衡的简单实现方法
2018/02/04 Python
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
精彩的大学生自我评价
2013/11/17 职场文书
外贸业务员工作职责
2014/01/06 职场文书
元旦趣味活动方案
2014/08/22 职场文书
辩护词范文大全
2015/05/21 职场文书
装修公司管理制度
2015/08/05 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android