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 last-child 列表最后一项的样式
Jan 22 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
Apr 01 Javascript
Script的加载方法小结
Jan 12 Javascript
js Html结构转字符串形式显示代码
Nov 15 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
jQuery截取指定长度字符串代码
Aug 21 Javascript
js正则表达式验证表单【完整版】
Mar 06 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
微信小程序模板template简单用法示例
Dec 04 Javascript
vue日历/日程提醒/html5本地缓存功能
Sep 02 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
浏览器JavaScript调试功能无法使用解决方案
Sep 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
PHP调用C#开发的dll类库方法
2014/07/28 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python实现清屏的方法
2015/04/30 Python
python比较两个列表大小的方法
2015/07/11 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Django实现文件上传下载功能
2019/10/06 Python
python利用线程实现多任务
2020/09/18 Python
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
厨房管理计划书
2014/04/27 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
慰问信模板
2015/02/14 职场文书
公司市场部岗位职责
2015/04/15 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
人生遥控器观后感
2015/06/11 职场文书
同意落户证明
2015/06/19 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
Python开发五子棋小游戏
2022/04/28 Python
Redis入门基础常用操作命令整理
2022/06/01 Redis