es6中new.target的作用和使用場景簡單示例分析
阿新 • • 發佈:2020-03-16
本文例項講述了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程式設計有所幫助。