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程序设计有所帮助。
es6中new.target的作用和使用场景简单示例分析
- Author -
qdmoment声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@