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 相关文章推荐
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
Oct 24 Javascript
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
jQuery验证元素是否为空的两种常用方法
Mar 17 Javascript
Bootstrap插件全集
Jul 18 Javascript
深入理解Node.js的HTTP模块
Oct 12 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
Angular1.x自定义指令实例详解
Mar 01 Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 Javascript
jQuery实现全选、反选和不选功能
Aug 16 jQuery
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 Javascript
JavaScript组合设计模式--改进引入案例分析
May 23 Javascript
如何利用JavaScript实现二叉搜索树
Apr 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编程效率的方法
2013/11/07 PHP
PHP小技巧之函数重载
2014/06/02 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
django query模块
2019/04/20 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
jupyter 添加不同内核的操作
2021/02/06 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
心理健康教育制度
2014/01/27 职场文书
校庆筹备方案
2014/03/30 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
Python 中random 库的详细使用
2021/06/03 Python
利用 JavaScript 构建命令行应用
2021/11/17 Javascript