Jas*_*son 2 javascript jquery grep byref
我想有人向我解释一下:
function myFunction(array){
array = $.grep(array, function(n,i){return n > 1 });
}
var mainArray = [1,2,3];
myFunction(mainArray);
document.write(mainArray) // 1,2,3, but i'm expecting 2,3
Run Code Online (Sandbox Code Playgroud)
但如果我做的事情
array[3] = 4;
Run Code Online (Sandbox Code Playgroud)
取而代之的是$.grep,我明白了1,2,3,4.不应该mainArray成为新创建的数组$.grep?
不,该array参数也是本地(引用)变量.该函数为此变量分配一个新数组,但这不会影响调用者的变量.所有参数(包括引用)都按值传递.
如果您修改(变异)的内容array,那将是不同的:
function myFunction(array){
var grepResult = $.grep(array, function(n,i){return n > 1 });
array.length = 0;
Array.prototype.push.apply(array, grepResult);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2509 次 |
| 最近记录: |