ES6學習筆記(五) Class和Module

2022-07-04 07:18:12 字數 1603 閱讀 7957

只是乙個語法糖,其功能用es5也能實現,但是比es5更符合類的期待

定義:constructor代表構造方法,而this指向new 生成的例項

定義類方法時,可以不使用function

注意:類的內部所有定義的方法,都是不可列舉的(non-enumerable)。

//定義類

class point

tostring()

}

使用

new point(x,y)
類的預設方法,new生成物件例項的時候執行的就是這個方法

乙個類必須有constructor方法

constructor預設返回例項物件

new foo(); // referenceerror

class foo {}

extends關鍵字

class colorpoint extends point {}
注意:

1.子類必須呼叫super,子類本身沒有this,super是父類的建構函式,呼叫super,子類才有this

這是因為子類例項的構建,是基於對父類例項加工,只有super方法才能返回父類例項。

1.子類的__proto__指向父類

2.子類的prototype的__proto__指向父類的.prototype

class a 

class b extends a

b.__proto__ === a // true

b.prototype.__proto__ === a.prototype // true

super關鍵字

1.呼叫super方法時,super代表父類的constructor方法

2.作為屬性super呼叫時,super代表父類本身

es6改變了object建構函式的行為,一旦發現object方法不是通過new object()這種形式呼叫,es6規定object建構函式會忽略引數。

直接在方法屬性前加*

乙個方法前加static,則該方法不會被繼承,而是通過類來直接呼叫

父類的靜態方法,可以被子類繼承。

靜態方法也可以從super上呼叫,因為super指向父類本身

注意:class內部只有靜態方法,沒有靜態屬性。

(在建構函式中)返回new命令作用於的那個建構函式。

es6的模組自動使用嚴格模式

通常情況下,export輸出的變數就是本來的名字,但是可以使用as關鍵字重新命名。

function v1() 

function v2()

export ;

export命令必須處於模組頂層。

export命令規定的是對外的介面。

import具有變數提公升效果,會提公升到模組頭部執行

import和export的預設變數名

commonjs模組輸出的是乙個值的拷貝,而es6模組輸出的是值的引用。

commonjs一旦輸出乙個值,模組內部的變化就影響不到這個值。

es6模組原始值變了,import輸入的值也會跟著變。

ES6之Class學習筆記

prototype 是類或者方法的 方法,proto 是new 之後的例項的方法。constructor方法是類的預設方法,通過new命令生成物件例項時,自動呼叫該方法。乙個類必須有constructor方法,如果沒有顯式定義,乙個空的constructor方法會被預設新增。class point ...

ES6的class和繼承

二.class 的繼承 function myfun x,y myfun.prototype.function var a newmyfun 1 2 class myfun 類的內部所有定義的方法,都是不可列舉的 object.keys myfun.prototype 1.所有的類都有乙個const...

ES6學習筆記

let 塊變數 作用域為塊 const 常亮 作用域為當前塊 解構賦值 例 var x,y 1,2 字元擴充套件 at includes startswith endswith repeat codepointat 模板字串 例 正則的uiy 數值擴充套件 number.isfinite numbe...