JavaScript开发必懂:super() 和 super(props) 的区别大揭秘
在JavaScript中,`super()`是一个关键字,用于调用父类的构造函数。在类继承中,子类在创建实例时,会自动调用父类的构造函数,但是父类的构造函数中并不能访问子类的实例变量,这时就需要通过`super()`来调用父类的构造函数。 `super()`的使用方式主要有两种: 1. 在子类的构造函数中调用父类的构造函数,不传任何参数: ```javascript class Parent { constructor(name) { this.name = name; } } class Child extends Parent { constructor(name, age) { super(name); // 调用父类的构造函数 this.age = age; } } ``` 2. 在子类的构造函数中调用父类的构造函数,并传入参数: ```javascript class Parent { constructor(name) { this.name = name; } } class Child extends Parent { constructor(name, age) { super(name, age); // 调用父类的构造函数,并传入参数 this.age = age; } } ``` 在第一种情况下,`super()`调用的是父类的构造函数,而没有传入任何参数,所以在子类的构造函数中,`this.name`是父类的实例变量,`this.age`是子类的实例变量。 在第二种情况下,`super()`调用的是父类的构造函数,并传入了参数,所以`this.name`是父类的实例变量,`this.age`是子类的实例变量。 `super()`的作用是调用父类的构造函数,如果在子类的构造函数中调用父类的构造函数,并传入参数,那么`super()`会调用父类的构造函数,并传入相同的参数。 ######[AI写代码神器 | 396点数解答 | 2023-11-09 01:43:06]
- C++开发必知:new int[10] 与 new int[10]() 的关键区别 (阿里通义 | 196点数解答 | 2023-11-09 00:45:31)326
- Javascript开发必知:jQuery中$.get()与$.post()的六大区别(阿里通义 | 341点数解答 | 2023-11-09 01:15:01)305
- PHP开发必知:isset() 与 empty() 函数的区别解析(百度文心 | 340点数解答 | 2023-11-09 17:57:11)316
- Linux开发必知:which与whereis命令查找文件的区别大揭秘(百度文心 | 193点数解答 | 2023-11-09 18:46:52)337
- JavaScript开发必懂:super() 和 super(props) 的区别大揭秘(阿里通义 | 396点数解答 | 2023-11-09 01:43:06)256
- 深度剖析:React高阶组件、Render Props与Hooks区别及迭代背后的四大原因(阿里通义 | 354点数解答 | 2023-11-09 01:52:18)402
- React 16.x:Props 改变后该在哪些生命周期处理?一文搞懂!(阿里通义 | 153点数解答 | 2023-11-09 01:52:54)276
- React开发必知:JavaScript中state与props触发更新的生命周期差异揭秘(阿里通义 | 206点数解答 | 2023-11-09 01:53:03)344
- "Complete Guide to Implementing a VUMAT Subroutine in Fortran for FEM and Abaqus Material Models"(GPT | 2664点数解答 | 2024-08-17 10:19:58)211
- iOS开发必知:释放对象时调用[super dealloc]的缘由及正确位置(百度文心 | 313点数解答 | 2023-11-09 17:37:49)223
- 深度解析iOS开发中“self = [super init]”方法的奥秘(百度文心 | 381点数解答 | 2023-11-09 17:38:07)332
- "A* Search Algorithm in Java: Code Improvements and Heuristic Calculation"(讯飞星火 | 688点数解答 | 2024-10-27 10:06:00)229