javascript – JS ECMAScript 6中继承了构造函数吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – JS ECMAScript 6中继承了构造函数吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1328字,纯文字阅读大概需要2分钟。
内容图文
我有示例类:
class Something{
constructor(x, y){
this.x = x;
this.y = y;
}
//...
}
当我将这样继承的类:
class Dog extends Something{
constructor(name){
this.name = name;
}
//...
}
Will Dog的构造函数看起来像这样吗?
constructor(x, y, name){
this.x = x;
this.y = y;
this.name = name;
}
如果没有,是否有可能让它像这样工作^?
解决方法:
Is constructor inherited in JS ECMAScript 6?
不是,不是.但是如果你根本不提供构造函数,那么JavaScript引擎提供的默认值就像继承的构造函数.1(与你的例子无关,你在Dog中提供了一个构造函数.)
Will Dog’s class look like this?
不.因为您已经在Dog中定义了构造函数,JavaScript引擎不会为您做任何事情;由你来定义Dog的构造函数并通过super调用Something’s(在你调用super之前你不能使用它).
你的Dog构造函数需要接受x和y,或者自己硬编码(或者从它获得的参数中获取它们):
接受它们:
class Dog extends Something{
constructor(name, x, y) {
super(x, y);
this.name = name;
}
//...
}
硬编码:
// Accepting them:
class Dog extends Something{
constructor(name) {
super(42, 57);
this.name = name;
}
//...
}
(或者当然,只接受x或y并硬编码/导出另一个.)
1如果你根本不提供构造函数,那么JavaScript引擎adds one for you.
对于基类,它看起来像这样:
constructor() {
}
对于派生类,它看起来像这样:
constructor(...args) {
super(...args);
}
后一个是我说它有点像继承构造函数的原因,因为与Java或C#等语言不同,默认构造函数不接受任何参数并且调用super而没有参数,JavaScript的默认值会传递它接收的所有参数.
内容总结
以上是互联网集市为您收集整理的javascript – JS ECMAScript 6中继承了构造函数吗?全部内容,希望文章能够帮你解决javascript – JS ECMAScript 6中继承了构造函数吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。