new.target 屬性
new.target返回new運算子後面所呼叫的建構函式或者類。
如果函式並非用作建構函式,返回值為undefined。
關於class類更多內容參閱JavaScript class 類一章節。
ES2015新增此屬性。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function Antzone() { if (new.target !== undefined) { console.log("用作建構函式"); }else{ console.log("用作普通函式"); } } new Antzone(); Antzone();
程式碼執行效果截圖如下:
根據函式Antzone的使用方式不同,列印出不同的結果。
[JavaScript] 純文字檢視 複製程式碼執行程式碼class Antzone{ constructor() { if (new.target == Antzone) { console.log("用作建構函式"); } } } new Antzone();
程式碼執行效果截圖如下:
對於類也是同樣的作用,但是需要注意一點,類不能被用作普通函式。
[JavaScript] 純文字檢視 複製程式碼執行程式碼class A { constructor() { console.log(new.target == B); } } class B extends A { constructor(length) { super(length, length); } } new B()
程式碼執行效果截圖如下:
當存在繼承關係時,此屬性返回的是子類名稱。
相關文章
- CMake 屬性之全域性屬性
- defer 屬性和 async 屬性
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目錄屬性
- CMake 屬性之目標屬性
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- CSS字型屬性和文字屬性詳解CSS
- Python 類的屬性與例項屬性Python
- python物件屬性管理(2):property管理屬性Python物件
- 根據屬性字串獲取屬性值字串
- CAD屬性編輯操作——物件屬性教程物件
- cssRules 屬性CSS
- previousElementSibling 屬性
- translucent屬性
- parentRule 屬性
- parentStyleSheet屬性
- cssText 屬性CSS
- Property屬性
- 私有屬性
- background屬性
- allowfullscreen 屬性
- ref屬性
- HTML 屬性HTML
- onreadystatechange 屬性
- DOM屬性
- jQuery 屬性jQuery
- background 屬性
- jQuery設定disabled屬性與移除disabled屬性jQuery
- WPF 之 依賴屬性與附加屬性(五)
- 框架(frameset),全域性屬性框架
- JavaScript cells 屬性JavaScript
- XMLHttpRequest responseText屬性XMLHTTP
- canvas shadowBlur 屬性Canvas
- canvas shadowColor 屬性Canvas
- JavaScript rows 屬性JavaScript
- JavaScript nodeName 屬性JavaScript
- HTML id 屬性HTML
- HTML dir 屬性HTML