只是乙個語法糖,其功能用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...