prototype 是類或者方法的 方法, _ proto_ 是new 之後的例項的方法。
constructor方法是類的預設方法,通過new命令生成物件例項時,自動呼叫該方法。乙個類必須有constructor方法,如果沒有顯式定義,乙個空的constructor方法會被預設新增。
class
point
// 等同於
class
point
}
類必須使用new呼叫,否則會報錯。這是它跟普通建構函式的乙個主要區別,後者不用new也可以執行。
class
foo}
foo(
)// typeerror: class constructor foo cannot be invoked without 'new'
與 es5 一樣,例項的屬性除非顯式定義在其本身(即定義在this物件上),否則都是定義在原型上(即定義在class上)。
//定義類
class
point
tostring()
}//es5方法定義的類執行下方的結果和上面是一樣的
function
point
(x, y)
point.prototype.
tostring
=function()
;var point =
newpoint(2
,3);
point.
tostring()
// (2, 3)
point.
hasownproperty
('x'
)// true
point.
hasownproperty
('y'
)// true
point.
hasownproperty
('tostring'
)// false
point.__proto__.
hasownproperty
('tostring'
)// true
let person =
newclass
sayname()
}('張三'
,'aaacccc');
person.
sayname()
;// "張三
ES6學習筆記(五) Class和Module
只是乙個語法糖,其功能用es5也能實現,但是比es5更符合類的期待 定義 constructor代表構造方法,而this指向new 生成的例項 定義類方法時,可以不使用function 注意 類的內部所有定義的方法,都是不可列舉的 non enumerable 定義類 class point tos...
JS 學習ES6之 class 的繼承
class 可以通過extends關鍵字實現繼承。在子類繼承父類的時候,在constructor中必須首先呼叫super 方法,然後才能使用this。父類 class point tostring 子類 class colorpoint extends point tostring 子類必須在con...
ES6學習筆記之ES6中的模組
1 import和export基本使用 重點 在es6中新增了js檔案的暴露和引入的新寫法 import和export node es6 require import exports.export module.exports default 使用export const 暴露函式名暴露函式,imp...