我有如下測試用例:通行證通過javascript參考和值/ jquery的
$(document).ready(function() {
var arrayList=[{"name":"pradip"},{"name":"Tengi"}];
var del = function(list) {
list.splice(1,1);
$("div").append("function:" + list.length +"<br>");
};
$("div").append("original:" + arrayList.length+"<br>");
del(arrayList);
$("div").append("modified"+ arrayList.length+"<br>");
var test=1;
var increase=function(a){
a++;
$("div").append("function="+a+"<br>");
}
$("div").append("original test="+test+"<br>");
increase(test);
$("div").append("increased test="+test+"<br>");
});
的輸出是:
original:2
function:1
modified1
original test=1
function=2
increased test=1
當我通過值傳遞數組的功能,並且在函數I改變了數值,改變也反映在原始數組中,但在其他情況下,沒有改變。
爲什麼傳值充當如果它是通過對數組引用傳遞?
JavaScript只能通過傳遞,值。在對象的情況下,該值實際上是該對象的一個引用*。 *通過引用*有所不同:http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference – 2014-10-07 15:56:57