首頁 > web前端 > js教程 > JavaScript 按值或引用傳遞:真實情況是什麼?

JavaScript 按值或引用傳遞:真實情況是什麼?

Mary-Kate Olsen
發布: 2024-12-28 17:27:55
原創
974 人瀏覽過

JavaScript Pass by Value or Reference: What's the Real Story?

JavaScript:引用傳遞與值傳遞揭秘

在 JavaScript 中,常會提出引用傳遞與值傳遞的話題問題。理解這個概念對於有效編程至關重要。

按值傳遞與按引用傳遞

與流行的看法相反,JavaScript 總是按值將參數傳遞給函數。但是,傳遞的值可以是原始資料類型(數字、字串、布林值、null、未定義)或對物件的參考(陣列、物件)。

原始資料與物件

  • 原語:依其實際值傳遞。傳遞值的修改不會影響函數外部的變數。
  • 物件(陣列、物件):透過引用傳遞。對物件屬性的修改會影響函數外部的變數。但是,將整個物件重新指派給新引用不會影響外部變數。

範例:

考慮程式碼片段:

function f(a, b) {
  a = 3;
  b[0] = "foo";
}

var x = 4;
var y = ["eeny", "miny", "mo"];
f(x, y);
登入後複製
  • x 保持不變,因為它是按值傳遞的原語,並且重新分配。
  • y 被修改,因為它是透過引用傳遞的對象,並且其屬性被修改。

獨立物件克隆

建立沒有任何引用的物件的完全獨立副本,最佳實踐是使用 Object.assign()方法或擴充運算子(...).

範例:

const original = { foo: "bar" };
const clone = { ...original };
登入後複製

在此範例中,複製是原始版本的獨立副本。對克隆的任何修改都不會影響原始版本。

以上是JavaScript 按值或引用傳遞:真實情況是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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