首頁 > web前端 > js教程 > 當 JavaScript 建構函數傳回非物件值時會發生什麼事?

當 JavaScript 建構函數傳回非物件值時會發生什麼事?

Patricia Arquette
發布: 2024-11-13 10:16:02
原創
266 人瀏覽過

What Happens When a JavaScript Constructor Returns a Non-Object Value?

理解 JavaScript 中的建構子回傳值

在 JavaScript 中,使用 new 關鍵字呼叫建構子來建立新物件。雖然建構函數通常會傳回 this,但某些條件可能會導致傳回不同的值。

傳回非此值的情況

行為由內部 [ 定義[Construct]] new 運算子使用的屬性。根據ECMA-262 第三版規範:

第7 步: 如果建構子(Result(6))傳回值的型別是not一個對象,回傳Result(6)。
第8 步: 否則,回傳Result(1)(新的

範例:

考慮以下構造函數:

function Foo() {
  return 1;
}
登入後複製

使用new 呼叫時,會發生以下步驟:

  • 建立了一個新對象,並將Foo 的原型設定為它的原型原型。
  • Foo 回傳1。不是對象,執行
  • 第7步
  • ,回傳1建構子。不是物件。 🎜>
  • 當建構函式傳回非物件值(例如,原始值、null、未定義)時,不會傳回 this 且建構函式而是傳回函數的回傳值。

以上是當 JavaScript 建構函數傳回非物件值時會發生什麼事?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板