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 相关文章推荐
JQuery实现自定义对话框的代码
Jun 15 Javascript
JS option location 页面跳转实现代码
Dec 27 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
从js向Action传中文参数出现乱码问题的解决方法
Dec 29 Javascript
Express的路由详解
Dec 10 Javascript
Bootstrap table的使用方法
Nov 02 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 Javascript
vue数据传递--我有特殊的实现技巧
Mar 20 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 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
终于听上了直流胆调频
2021/03/02 无线电
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
让python json encode datetime类型
2010/12/28 Python
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python编程线性回归代码示例
2017/12/07 Python
Django中的ajax请求
2018/10/19 Python
python中调试或排错的五种方法示例
2019/09/12 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
结束运行python的方法
2020/06/16 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
厂办主管岗位职责范本
2014/02/28 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
走进毛泽东观后感
2015/06/04 职场文书
导游词之天津古文化街
2019/11/09 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
python 如何用map()函数创建多线程任务
2021/04/07 Python