es6中new.target的作用和使用场景简单示例分析


Posted in Javascript onMarch 14, 2020

本文实例讲述了es6中new.target的作用和使用场景。分享给大家供大家参考,具体如下:

有时候想写出只能被继承使用的类,这时候就要用到new.target

1 含义:

new.target返回使用new方法调用类时的类的名称,子类继承父类时,new.target会返回子类

class Rectangle {
 constructor(length, width) {
  console.log(new.target === Rectangle);
  // ...
 }
}

class Square extends Rectangle {
 constructor(length) {
  super(length, length);
 }
}

var obj = new Square(3); // 输出 false

2 new.target的作用

------限制类的调用方法,判断new.target是不是未定义

-----写出只能被继承使用的类

class Shape {
 constructor() {
  if (new.target === Shape) {
   throw new Error('本类不能实例化');
  }
 }
}

class Rectangle extends Shape {
 constructor(length, width) {
  super();
  // ...
 }
}

var x = new Shape(); // 报错
var y = new Rectangle(3, 4); // 正确

参考:http://es6.ruanyifeng.com/#docs/class

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 Javascript
jquery对单选框,多选框,文本框等常见操作小结
Jan 08 Javascript
jQuery调取jSon数据并展示的方法
Jan 29 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
May 25 Javascript
JavaScript编程中的Promise使用大全
Jul 28 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
Apr 01 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
javascript如何用递归写一个简单的树形结构示例
Sep 06 Javascript
vue cli3适配所有端方案的实现
Apr 13 Javascript
解决vant-UI库修改样式无效的问题
Nov 03 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 #Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 #Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 #Javascript
JS数组的高级使用方法示例小结
Mar 14 #Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 #Javascript
js函数和this用法实例分析
Mar 13 #Javascript
js对象简介与基本用法示例
Mar 13 #Javascript
You might like
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Python中生成Epoch的方法
2017/04/26 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python占位符输入方式实例
2019/05/27 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
中餐厅经理岗位职责
2014/04/11 职场文书
2015国庆节感想
2015/08/04 职场文书
车间班组长竞聘书
2015/09/15 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书