1、Class的基本語法es6
一、簡介編程
基本上,ES6的class能夠看做只是一個 語法糖,它的絕大部分功能,ES5均可以作到,新的class寫法只是讓 對象原型 的寫法更加清晰、更像面向對象編程的語法而已。
函數
若是要生成一個對象實例,須要先定義一個構造函數,而後經過new操做符來完成。構造函數實例:this
//函數名和實例化構造名相同而且大寫(有助於區分構造函數和普通函數)
function Person(name,age){ this.name = name; this.age = age; } Person.prototype.read = function(){ return "個人名字叫" + "this.name" + "今年" + this.age + "歲了"; } var obj = new Person("一諾",18);//經過構造函數建立對象,使用new
console.log(obj.read()) //結果:個人名字叫一諾今年18歲了。
上面代碼的代碼用ES6改寫:spa
class Person{ //定義一個名爲Person的類
constructor(name,age){ //constructor是一個構造方法,用來接收參數
this.name = name; this.age = age; } read(){ return "個人名字叫" + this.name + "今年" + this.age + "歲了" } } var obj = new Person ("一諾",18) console.log(obj.read()) //個人名字叫一諾今年18歲了
constructor方法是類的構造函數的默認方法,經過new 命令生成對象實例時,自動調用該方法。prototype
class Box{ constructor(){ console.log("這個禮拜天氣不錯"); //當實例化對象時該行代碼會執行 } } var obj = new Box();
class Desk{ constructor(){ this.ss = "大千世界,無奇不有"; } } class Box{ constructor(){ return new Desk();//沒有用this,直接返回一個全新的對象 } } var obj = new Box(); console.log(obj.ss) //大千世界,無奇不有
class不錯在變量提高,因此須要先定義再使用。由於ES6不會把類的聲明提高到代碼的頭部,可是ES5就不同,ES5存在變量提高,能夠先使用,而後再定義3d