国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

解讀ES6中class關鍵字

2024-05-06 15:24:18
字體:
來源:轉載
供稿:網(wǎng)友

class是es6引入的最重要特性之一。在沒有class之前,我們只能通過原型鏈來模擬類。

1 、介紹 

  //定義類  class Point {   constructor(x, y) {   this.x = x;   this.y = y;   }   toString() {   return '(' + this.x + ', ' + this.y + ')';   }  }

  Point類除了構造方法,還定義了一個toString方法。注意,定義“類”的方法的時候,前面不需要加上function這個關鍵字,直接把函數(shù)定義放進去了就可以了。另外,方法之間不需要逗號分隔,加了會報錯。  

 //類的數(shù)據(jù)類型就是函數(shù),類本身就指向構造函數(shù)。用的時候,也是直接對類使用new命令,跟構造函數(shù)的用法完全一致。  class Bar {   doStuff() {   console.log('stuff');   }  }  var b = new Bar();  b.doStuff() // "stuff"

2、嚴格模式

  類和模塊的內(nèi)部,默認就是嚴格模式,所以不需要使用use strict指定運行模式。只要你的代碼寫在類或模塊之中,就只有嚴格模式可用

3、constructor 方法

  constructor方法是類的默認方法,通過new命令生成對象實例時,自動調(diào)用該方法。一個類必須有constructor方法,如果沒有顯式定義,一個空的constructor方法會被默認添加。    

class Point {  }  // 等同于  class Point {   constructor() {}//constructor方法默認返回實例對象(即this),完全可以指定返回另外一個對象。  }  //注意:類必須使用new調(diào)用,否則會報錯。這是它跟普通構造函數(shù)的一個主要區(qū)別,后者不用new也可以執(zhí)行。

4、類的實例對象

  生成類的實例對象的寫法,使用new命令。

  實例的屬性除非顯式定義在其本身(即定義在this對象上),否則都是定義在原型上(即定義在class上)。    

 class Point {   // ...  }  // 報錯  var point = Point(2, 3);  // 正確  var point = new Point(2, 3);

5、Class 表達式

  下面代碼使用表達式定義了一個類。需要注意的是,這個類的名字是MyClass而不是Me,Me只在 Class 的內(nèi)部代碼可用,指代當前類。      

 const MyClass = class Me {   getClassName() {   return Me.name;   }  };  //采用 Class 表達式,可以寫出立即執(zhí)行的 Class。  var person = new class {   constructor(name) {   this.name = name;   }   sayName() {   console.log(this.name);   }  }('張三');  person.sayName(); // "張三"

6、不存在變量提升

  類不存在變量提升(hoist)

  下面代碼中,F(xiàn)oo類使用在前,定義在后,這樣會報錯,因為 ES6 不會把類的聲明提升到代碼頭部。這種規(guī)定的原因與下文要提到的繼承有關,必須保證子類在父類之后定義。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 青海省| 湟中县| 中牟县| 望城县| 铁力市| 新余市| 伊宁县| 宜宾县| 北宁市| 老河口市| 南康市| 滨海县| 岳阳县| 安图县| 南京市| 北票市| 宣威市| 高碑店市| 青田县| 辽阳市| 剑河县| 穆棱市| 枝江市| 元氏县| 胶南市| 临西县| 根河市| 安仁县| 桑植县| 荥阳市| 乐清市| 海淀区| 满城县| 大同市| 渭南市| 静安区| 凌云县| 历史| 长汀县| 南江县| 清河县|