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 相关文章推荐
深入认识JavaScript中的函数
Jan 22 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
Oct 22 Javascript
input按钮的事件处理大全
Dec 10 Javascript
jQuery实现跨域iframe接口方法调用
Mar 14 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
Apr 15 Javascript
js改变Iframe中Src的方法
May 05 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
Jan 19 Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
Apr 21 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
vue中datepicker的使用教程实例代码详解
Jul 08 Javascript
JavaScript算法学习之冒泡排序和选择排序
Nov 02 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
PHP实现文件安全下载
2006/10/09 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
Python多线程编程简单介绍
2015/04/13 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
python队列queue模块详解
2018/04/27 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
在Python中表示一个对象的方法
2019/06/25 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
幼师求职自荐信范文
2014/01/26 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
收费员岗位职责
2015/02/14 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
乔迁新居祝福语
2019/11/04 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
python 如何在list中找Topk的数值和索引
2021/05/20 Python