亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Ist JavaScript eine Pass-by-Reference- oder Pass-by-Value-Sprache?
P粉450744515
P粉450744515 2023-08-23 18:58:12
0
1
635
<p>Primitive Typen (Zahlen, Zeichenfolgen usw.) werden als Wert übergeben, Objekte sind jedoch unbekannt, da sie alle als Wert übergeben werden k?nnen (in diesem Fall ist die Variable, von der wir glauben, dass sie das Objekt enth?lt, tats?chlich eine Referenz auf ein Objekt). und Pass-by-Reference (wenn wir uns die Variablen eines Objekts so vorstellen, als ob sie das Objekt selbst enthalten). </p> <p>Obwohl es am Ende keine Rolle spielt, würde ich gerne wissen, wie man eine Parameterübergabekonvention richtig darstellt. Gibt es einen Auszug aus der JavaScript-Spezifikation, der die diesbezügliche Semantik definiert? </p>
P粉450744515
P粉450744515

Antworte allen(1)
P粉231112437

JavaScript 很有趣??紤]這個(gè)例子:

function changeStuff(a, b, c)
{
  a = a * 10;
  b.item = "changed";
  c = {item: "changed"};
}

var num = 10;
var obj1 = {item: "unchanged"};
var obj2 = {item: "unchanged"};

changeStuff(num, obj1, obj2);

console.log(num);
console.log(obj1.item);
console.log(obj2.item);

這會(huì)產(chǎn)生輸出:

10
changed
unchanged
  • 如果 obj1 根本不是引用,則更改 obj1.item 不會(huì)對(duì)函數(shù)外部的 obj1 產(chǎn)生任何影響。
  • 如果參數(shù)是正確的引用,那么一切都會(huì)改變。 num 將是 100,而 obj2.item 將讀取“changed”。相反,num 保持 10obj2.item 保持“不變”。

相反,情況是傳入的項(xiàng)是按值傳遞的。但是按值傳遞的項(xiàng)本身就是一個(gè)引用。 從技術(shù)上講,這稱為共享呼叫

實(shí)際上,這意味著如果您更改參數(shù)本身(如 numobj2),則不會(huì)影響輸入到范圍。但是,如果您更改參數(shù)的內(nèi)部,它將向上傳播(與 obj1 一樣)。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage