我在想如果我可以修改函數中的參數嗎?如何在javascript中使用通過引用傳遞
-3
A
回答
1
對象和數組作爲參考,並且改變傳遞給函數會影響原來的參數傳遞。所有其他類型的行爲就像它們按值傳遞一樣,並且不能更改原始內容。
Javascript會自動執行此操作 - 您無法指定按某些其他語言通過值或引用傳遞某些內容。如果你想通過引用傳遞一些東西,把它放在一個數組或對象中,並傳遞數組/對象。
實施例1(傳遞對象):
實施例2(傳遞字符串):
function hello(str) {
str = str + " and goodbye";
alert(str);
}
var greeting = "Hello";
hello(greeting);
// greeting == "Hello" - value is unchanged
實施例3(通過在對象的字符串):
function hello(obj) {
obj.str = obj.str + " and goodbye";
alert(obj.str);
}
var o = {greeting: "Hello"};
hello(o);
// o.greeting == "Hello and goodbye" - value is changed
實例4(通過一個數字):
function hello(num) {
num++;
alert(num);
}
var mynum = 5;
hello(mynum);
// mynum == 5 - value is unchanged
注意:有時令人困惑的一件事是字符串實際上是通過引用傳遞的(而不是製作副本),但是javascript中的字符串是不可變的(您無法在javascript中更改字符串),所以如果嘗試要修改作爲參數傳遞的字符串,更改後的值將以新字符串結尾,因此原始字符串不會更改。
0
我想你的意思是問:「是否有可能將參數值傳遞給引用的參數?
JavaScript本質上是一種通過參照語言傳遞對象的方式。像數字,布爾值和字符串這樣的原語按值傳遞。如果你想到如何PhP(或幾個其他人)可以改變通過引用或值修飾符(IE函數passByRef(& refVar))這個是不可能的與JavaScript。這裏有一個很好的帖子,關於有時javascript可能會在傳遞某些對象和你可能期望的東西時變得更加無所謂,而如果它有幫助,實際上會發生什麼。
Is JavaScript a pass-by-reference or pass-by-value language?
相關問題
- 1. 如何在javascript中通過引用傳遞
- 2. 通過引用傳遞JavaScript變量
- 3. 爲什麼JavaScript通過引用傳遞?
- 4. JavaScript通過引用或值傳遞?
- 5. Javascript:通過引用傳遞對象
- 6. 如何通過引用傳遞Generic :: List?
- 7. 如何通過引用傳遞數組?
- 8. 如何通過引用傳遞結構?
- 9. hadoop如何通過引用傳遞?
- 10. python如何通過引用傳遞?
- 11. 如何通過引用傳遞結構?
- 12. 在C++中通過引用傳遞?
- 13. 在Java中通過引用傳遞?
- 14. 在__clone中通過引用傳遞
- 15. 在perl中通過引用傳遞值
- 16. 在java中通過引用傳遞?
- 17. 在Python中通過引用傳遞
- 18. 在VB.Net中通過引用傳遞
- 19. 在Ruby中通過引用傳遞
- 20. 在AS3中通過引用傳遞
- 21. 通過引用傳遞與值傳遞
- 22. 通過引用傳遞C++
- 23. C++通過引用傳遞?
- 24. cpp通過引用傳遞
- 25. PHP通過引用傳遞?
- 26. Java通過引用傳遞
- 27. C++通過引用傳遞
- 28. 通過引用傳遞流
- 29. JFrame通過引用傳遞
- 30. 通過引用傳遞LPCWSTR
使用Google搜索您的標題.. http://sirdarckcat.blogspot.com.ar/2007/07/passing-reference-to-javascript.html – 2012-08-11 03:04:14