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 相关文章推荐
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
让人印象深刻的10个jQuery手风琴效果应用
May 08 Javascript
Jquery获得控件值的三种方法总结
Feb 13 Javascript
js实现div在页面拖动效果
May 04 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
vue 父组件通过v-model接收子组件的值的代码
Oct 27 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
vue组件创建的三种方式小结
Feb 03 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
PHP4之真OO
2006/10/09 PHP
两种php调用Java对象的方法
2006/10/09 PHP
php 魔术方法使用说明
2009/10/20 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
react基本安装与测试示例
2020/04/27 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
python实现机器人行走效果
2018/01/29 Python
python 图像平移和旋转的实例
2019/01/10 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
冰淇淋开店创业计划书
2014/02/01 职场文书
行政专员求职信范文
2014/05/03 职场文书
白酒营销策划方案
2014/08/17 职场文书
读群众路线的心得体会
2014/09/03 职场文书
合作协议书模板
2014/10/10 职场文书
公司授权委托书
2014/10/17 职场文书
委托书英文
2015/01/28 职场文书
英语教师个人工作总结
2015/02/09 职场文书