es5建立物件和es6的Class

2021-08-18 20:54:24 字數 731 閱讀 2919

es5建立物件的方式  有工廠模式,建構函式模式,原型模式和  組合使用建構函式模式+原型模式

最常使用的模式是 組合使用 建構函式模式+原型模式,這樣的好處是,每個例項可以保持獨特的例項屬性,也可以共有原型方法

function person(name,age)

person.prototype.sayname=function()

var person1=new person('zhm',25);

在es5中我們建立物件最好的方法就是 組合建構函式模式和原型模式

而es6幫我們封裝了這種模式

class person

sayname()

}var student=new student('zhm',18);

class類中的constructor方法就相當於es5中的建構函式,其實類中的所有方法都定義在了prototype上,prototype物件的constructor屬性也指向class類本身,被所有例項共享

不同的是,class只能通過new操作符呼叫,不能像es5中的建構函式一樣,當成普通函式呼叫。

class的寫法就是一種語法糖,這些功能es5都能實現,只不過使用class可以讓物件原型更加清晰,更接近物件導向程式設計。

constructor()方法是類的預設方法,所有的類都有constructor方法,如果constructor方法沒有被顯式定義,js會自動新增乙個空的

ES6和ES5的區別

es6和es5的區別?1 定義變數 es5中用 var function es6中用 let const class import 沒有變數提公升 同乙個作用域中不可重複宣告 不會給window增加全域性屬性 會形成塊級作用域 const設定的變數值是不可修改的 理解為常量 暫時性死區 2 解構賦值...

es6和es5的區別

1 es6新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的 塊內有效。a b let不像var存在變數提公升,即變數一定要宣告之後才能使用 2 塊級作用域 es5只有全域性作用域和函式作用域,沒有塊級作用域 3 變數的結構賦值 var a,b,c 1,2,...

es5和es6的區別

最近在看阮一峰的 ecmascript6入門 講真,這本書對初學者真的很有幫助,在這裡也推薦給大家。接下來,我要說的一些例子也大多 於這本書,如果對這本書感興趣的小夥伴,也可以戳這裡哦!1.新增let命令 在es6之前,我們宣告變數都是通過var,es6新增的let命令與var類似,與之不同是,le...