繞過「this」所引用的建構子的回傳值
使用new 關鍵字呼叫建構函式時,預設行為是建構子傳回新建立的物件(稱為“this”)。然而,在某些特定情況下,建構函數可以傳回不同的值,從而有效地阻止將「this」指派給新建立的物件。
根據ECMAScript 規範,[[Construct]] 的第8 步內部屬性定義回傳行為如下:
如果建構子(Result(6))傳回值的型別不是Object:
- The value returned by the constructor will be returned instead of "`this`".
因此,傳回建構函式中「this」以外的值:
範例:
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
在這種情況下,由於Foo建構子傳回一個不是Foo 建構子實例的對象,(new Foo() instanceof Foo) 將計算為false。
以上是建構函數可以傳回'this”以外的值嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!