1class point
6tostring()9}
10var foo = new point(2,3);
11console.log(foo.x);
12//
es6類完全可以看作建構函式的另一種寫法
13//
type of "function"
14//
point === point.prototype.constructor true
1516
//建構函式的prototype屬性在es6的"類"上繼續存在,事實上類的所有方法都定義在類的 prototoye 屬性上
1718
//在類的例項上呼叫方法,其實就是呼叫類原型上的方法
1920
//類的內部定義的所有方法都是不可列舉的
2122
//類和模組的內部預設使用嚴格模式
2324
//constructor是類的預設方法通過new命令生成例項物件時自動呼叫該方法.
2526
//乙個類必須有constructor方法,如果沒有顯式定義,預設新增乙個空的constructor方法
2728
//類必須使用new來呼叫,否則報錯
2930
//與es5一樣例項的屬性除非顯式定義在其本身(即this物件上),否則都是定義在原型(即class)上
3132
//class表示式
3334 const myclass =class me{}
3536 const foo = class{}; //
省略類名
3738
//類不存在變數提公升 (與繼承有關)
3940
//必須在定義後使用,否則報錯
4142
43//
this指向
4445
//類的方法內部如果含有this,它將預設指向類的例項
4647
//class的取值函式getter和存值函式setter
4849
//class的靜態方法
50//
在乙個方法前加上static關鍵字就表示該方法不會被例項繼承,而是直接通過類呼叫,稱為靜態方法
51//
父類的靜態方法可以被子類繼承,靜態方法也可以從super物件上呼叫
5253
//class 例項屬性/靜態屬性
54//
在例項屬性寫法前面加上static關鍵字就可以了
5556
//class的繼承
5758
//class通過extends實現繼承
59//
super關鍵字表示父類的建構函式
60//
子類必須在constructor方法中呼叫super方法,否則新建例項會報錯,這是因為子類沒有自己的this物件,而是繼承父類的this物件
61class point {}
62class colorpoint66}
6768
//在子類的建構函式中只有呼叫super之後才可以使用this關鍵字,否則報錯
6970
//super關鍵字
71//
super關鍵字及可以當作函式使用,也可以當作物件使用
72//
super作為函式使用時,代表呼叫父類的建構函式,只能在子類建構函式中使用,其他地方會報錯
73//
第二種情況,super作為物件時在普通方法中指向父類的原型物件,在靜態方法中指向父類
74//
super呼叫父類的方法時,super會繫結子類的this
7576
77//
類的prototype屬性和__proto__屬性
78//
class作為建構函式的語法糖同時有prototype屬性和__proto__屬性,因此同時存在兩條繼承鏈
79//
子類的__proto__屬性表示建構函式的繼承,總是指向父類
80//
子類的prototype屬性的__proto__屬性表示方法繼承,總是指向父類prototype屬性
C 繼承與Class 記憶體模型
c 類主要包括屬性和操作兩類,在物件模型中即乙個物件例項中占用記憶體的只是class的屬性部分,也就是資料成員部分,本文旨在剖析c 物件模型中在有繼承情形下類物件的記憶體布局,主要分4種情況討論 單一繼承沒有多型 單一繼承有多型 多重繼承 虛擬繼承。所謂單一繼承沒有多型,也就是class b繼承於 ...
Class多種繼承方式
class 的多種繼承方式 繼承1 原型鏈繼承 子類的prototype為父類的例項 function person person.prototype.printname function function student student.prototype newperson student.pr...
動態class與style 靜態class
好喜歡她呀,喜歡的不得了。應該不會有人看到吧 詳解 通過vue中的v bind來動態繫結標籤的類名與樣式 class home class 物件形式繫結classp class black,yellow 陣列形式動態繫結classp style styledata 動態繫結stylep div te...