es6中new.target的作用和使用场景简单示例分析
本文实例讲述了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.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
相关文章
引入autocomplete组件时JS报未结束字符串常量错误
在引入jQuery的autocomplete组件时,遇到js报未结束字符串常量错误,原因及解决方法如下,大家可以参考下2014-03-03
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
本篇文章主要介绍了JS控制图片翻转示例代码(兼容firefox,ie,chrome) 需要的朋友可以过来参考下,希望对大家有所帮助2013-12-12
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
这篇文章主要介绍了谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)以及JSON的parse()和stringfy()方法详解,感兴趣的朋友一起看看吧2015-10-10


最新评论