JavaScript中的Super()是什么?
在JavaScript中了解super()
:本指南探讨了JavaScript中的super()
关键字,重点是从父类中继承。尽管JavaScript的类系统建立在原型继承上, super()
提供了熟悉的基于类的继承语法。
super()
关键字不是JavaScript所唯一的; Java和Python之类的语言类似地使用它来引用父类。但是,JavaScript的方法有所不同。它利用了对基于类的基于类的继承行为的原型继承。 Mozilla的文档强调,JavaScript类是基于现有原型的继承的“句法糖”。
让我们用代码示例说明。考虑两个类: Fish
(父母)和Trout
(孩子)。 Fish
具有特性habitat
和length
。 Trout
扩展了Fish
,增加了variety
特性。
类鱼{ 构造函数(栖息地,长度){ this.habitat =栖息地; this.length =长度; } } 鳟鱼延伸鱼{ 构造函数(栖息地,长度,品种){ 超级(栖息地,长度); //致电父母的构造函数 this.variety =多样性; } }
在Trout
的构造函数中, super(habitat, length)
至关重要。它称为Fish
的构造函数,在Trout
对象的上下文中建立了habitat
和length
特性。省略super()
将导致参考错误。这说明了super()
如何将父级的属性集成到子类中。
重要的是,JavaScript具有灵活性。虽然您必须调用super()
以避免错误,但您不必传递父构建器所期望的确切参数。您可以直接分配属性:
鳟鱼延伸鱼{ 构造函数(栖息地,长度,品种){ 极好的(); this.habitat =栖息地; this.length =长度; this.variety =多样性; } }
这种方法虽然不太清楚,但取得了相同的结果。没有参数的super()
创建属性,但使其不确定,从而允许后续作业。这突出了与Java这样的真实类继承模型的关键区别。
super()
还超越了构造函数。它可以访问父类方法。让我们添加一个renderProperties
方法以显示属性:
类鱼{ RenderProperties(element){ element.innerhtml = json.stringify(this); } } 鳟鱼延伸鱼{ RenderPropertieswithsuper(element){ element.ClassName =“ green”; super.renderproperties(element); //调用父级的方法 } }
Trout
的renderPropertiesWithSuper
重新使用Fish
的renderProperties
,增加了额外的功能。命名( renderPropertiesWithSuper
)是故意的;它避免覆盖父母的方法,从而访问两者。
重要的是要注意,这种基于类的语法本质上是一种便利。可以在没有extends
和super()
情况下实现相同的功能,但具有更复杂的代码涉及直接的原型操纵。这加强了“句法糖”概念。
总之,JavaScript类在使用原型继承时,提供了具有super()
类似类别的结构。了解这一细微差别以及原型遗传基本原理,是有效使用JavaScript中的类的关键,尤其是在诸如React之类的框架中。
以上是JavaScript中的Super()是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

格子呢是一块图案布,通常与苏格兰有关,尤其是他们时尚的苏格兰语。在Tartanify.com上,我们收集了5,000多个格子呢
