1. 程式人生 > 程式設計 >es6中new.target的作用和使用場景簡單示例分析

es6中new.target的作用和使用場景簡單示例分析

本文例項講述了es6中new.target的作用和使用場景。分享給大家供大家參考,具體如下:

有時候想寫出只能被繼承使用的類,這時候就要用到new.target

1 含義:

new.target返回使用new方法呼叫類時的類的名稱,子類繼承父類時,new.target會返回子類

class Rectangle {
 constructor(length,width) {
  console.log(new.target === Rectangle);
  // ...
 }
}

class Square extends Rectangle {
 constructor(length) {
  super(length,length);
 }
}

var obj = new Square(3); // 輸出 false

2 new.target的作用

------限制類的呼叫方法,判斷new.target是不是未定義

-----寫出只能被繼承使用的類

class Shape {
 constructor() {
  if (new.target === Shape) {
   throw new Error('本類不能例項化');
  }
 }
}

class Rectangle extends Shape {
 constructor(length,width) {
  super();
  // ...
 }
}

var x = new Shape(); // 報錯
var y = new Rectangle(3,4); // 正確

參考:http://es6.ruanyifeng.com/#docs/class

感興趣的朋友可以使用線上HTML/CSS/JavaScript程式碼執行工具:http://tools.jb51.net/code/HtmlJsRun測試上述程式碼執行效果。

更多關於JavaScript相關內容感興趣的讀者可檢視本站專題:《javascript面向物件入門教程》、《JavaScript錯誤與除錯技巧總結》、《JavaScript資料結構與演算法技巧總結》、《JavaScript遍歷演算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程式設計有所幫助。