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实现在小方框中浏览大图的代码
Aug 14 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
JavaScript修改css样式style动态改变元素样式
Dec 16 Javascript
js如何判断用户是否是用微信浏览器
Jun 05 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
jquery实现可关闭的倒计时广告特效代码
Sep 02 Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
Webpack打包css后z-index被重新计算的解决方法
Jun 18 Javascript
浅析为什么a="abc" 不等于 a=new String("abc")
Oct 25 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
Apr 19 Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 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 魔术函数使用说明
2010/02/21 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python常用运维脚本实例小结
2020/02/14 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
ktv中秋节活动方案
2014/01/30 职场文书
推广普通话演讲稿
2014/05/23 职场文书
大专生找工作自荐书
2014/06/10 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis