ES6類和ES5函式建構函式有什麼區別?
我們先來看看每個例子:
// ES5 Function Constructor function Person(name) { this.name = name; } // ES6 Class class Person { constructor(name) { this.name = name; } } |
對於簡單的建構函式,它們看起來非常相似。
使用繼承時,建構函式的主要區別在於。如果我們想建立一個Student子類Person並新增studentId欄位的類,那麼除了上述內容之外,我們還必須這樣做:
// ES5 Function Constructor function Student(name, studentId) { // Call constructor of superclass to initialize superclass-derived members. Person.call(this, name); // Initialize subclass's own members. this.studentId = studentId; } Student.prototype = Object.create(Person.prototype); Student.prototype.constructor = Student; // ES6 Class class Student extends Person { constructor(name, studentId) { super(name); this.studentId = studentId; } } |
在ES5中使用繼承更加冗長,ES6版本更易於理解和記憶。
相關文章
- class和普通建構函式有什麼區別?函式
- es5建構函式,es6類和類的繼承函式繼承
- 函式宣告與函式表示式有什麼區別?函式
- 建構函式和類函式
- 建構函式與普通函式的區別函式
- ES6函式比對ES5函式函式
- 類的建構函式和解構函式函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- JavaScript函式宣告和函式表示式區別JavaScript函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- strcpy函式和memcpy函式的區別函式memcpy
- JS 建構函式與類JS函式
- 前端面試ES6系列:箭頭函式和普通函式的區別前端面試函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- 建構函式與解構函式函式
- # 普通函式和箭頭函式的區別函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- 父類和子類的建構函式問題函式
- C++之類解構函式為什麼是虛擬函式C++函式
- C++ 建構函式和解構函式C++函式
- ## 建構函式函式
- C++:建構函式的分類和呼叫C++函式
- 主建構函式有啥用函式
- JavaScript方法和函式區別JavaScript函式
- 箭頭函式和普通函式的10個區別函式
- 簡述箭頭函式和普通函式的區別函式
- window.onload()函式和jQuery中的document.ready()有什麼區別?函式jQuery
- QImage:使用QImage建構函式載入影像和使用成員函式loadFromData載入影像的區別函式
- 19-父類的建構函式函式
- flutter-dart 類的建構函式FlutterDart函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- 為什麼值型別不允許顯式定義無參建構函式型別函式
- C++學習筆記-----類和建構函式C++筆記函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 箭頭函式與普通函式區別函式
- JavaScript 建構函式JavaScript函式
- python語言中類和函式的作用及區別!Python函式
- 面試題:箭頭函式和普通函式的區別面試題函式