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学习笔记-详解in运算符
Sep 13 Javascript
window.open关于浏览器拦截问题分析及解决方法
Feb 05 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
jquery输入数字随机抽奖特效的简单实现代码
Jun 10 Javascript
js 动态生成json对象、时时更新json对象的方法
Dec 02 Javascript
微信小程序button组件使用详解
Jan 31 Javascript
小程序自定义组件实现城市选择功能
Jul 18 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
微信小程序 调用微信授权窗口相关问题解决
Jul 25 Javascript
Vue如何获取数据列表展示
Dec 11 Javascript
JQuery Ajax如何实现注册检测用户名
Sep 25 jQuery
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
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程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
PHP钩子实现方法解析
2019/05/21 PHP
javascript 数组的方法集合
2008/06/05 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
Python入门篇之编程习惯与特点
2014/10/17 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
外包公司软件测试工程师
2014/11/01 面试题
优秀大学生职业生涯规划书
2014/02/27 职场文书
工程承包协议书
2014/04/22 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
海洋天堂观后感
2015/06/05 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
正确的理解和使用Django信号(Signals)
2021/04/14 Python
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
使用Pytorch训练two-head网络的操作
2021/05/28 Python