ES5建構函式與ES6類

2022-08-21 21:21:06 字數 1844 閱讀 3908

es5的建構函式:

function

f(name)

f.prototype.writecss = function

() f.writejs = function () ;

//定義在類上的靜態屬性

let f = new

f();

f.writecss();

f.writejs();

es6的類:

class f;

writecss()

static writejs()

}let f = new f('lily');

console.log(f);

f.writejs();

es5的寄生式組合繼承:(只能繼承父類的共有屬性)

//只能繼承父類的公有屬性

function

f(name)

f.prototype.writecss = function

() let f = new

f();

//先在例項上查詢,若沒有則通過__proto__去所屬類的原型上找

//__proto__是實現繼承的關鍵 f類能查詢到object類原型上的屬性,說繼承於object

console.log(f.hasownproperty('name'));

console.log(f.prototype.__proto__ === object.prototype);//

true f類是object類的子類,子類是可以呼叫原型上的屬性

function

s(age)

s.prototype

= object.create(f.prototype);

//寄生式組合繼承 ie6~8不支援 必須在原型物件之前!!

s.prototype.writejs = function

() ;

//實現s類是f類的子類,s類就能呼叫f類的公有屬性

= f.prototype;

let s = new

s();

s.writecss();

es5的call繼承:(繼承父類的私有屬性):

//

繼承父類的私有屬性

function

f(name)

f.prototype.writecss = function () ;

function

s(age, name)

s.prototype = object.create(f.prototype);//

寄生式組合繼承 ie6~8不支援 必須在原型物件之前!!

s.prototype.writejs = function () ;

//實現s類是f類的子類,s類就能呼叫f類的私有屬性

let s = new s(20,'lucy');

console.log(s.name);

es6繼承:(繼承私有屬性,共有屬性和靜態屬性):

class f

writecss()

static fn()

} class s extends f

writejs()

} let s = new s(20,'lucy');

console.log(s.name);

s.writecss();

s.fn();

ES5與ES6建構函式

function 函式名 引數 函式名.prototype.方法名 function class 類名 方法名稱 1.定義建構函式 es5 function 函式名定義 es6 class 類名定義 注 class建構函式類名後沒有 2.定義例項化物件屬性和屬性值 es5 function 函式中定...

ES6建構函式class 和 ES5建構函式語法

在說建構函式之前,我們先講一講物件導向程式設計。所謂的物件導向程式設計,是一種程式設計思想和書寫方式方法,它是將程式封裝在物件內,並給物件設定屬性和屬性值。而這個封裝程式的物件我們稱之為例項化物件,而生成例項化物件的函式就是建構函式。一般情況下,為了和普通函式區別,我們將建構函式的首字母大寫。接下來...

ES6函式比對ES5函式

這裡只做簡單的es6函式與es5函式對比,把es6函式中新增的方法或者用法介紹一下。方便大家學習 記憶。隨著社會發展,瀏覽器肯定會在不久全部支援es6語法,因為現在的ie8使用者都很少了,做web前端將不再受此束縛!其他語言已經支援函式引數預設值,咱們js也不會落後的。例 es6寫法 a 預設值10...