Javascript Array.prototype不修改原始数组

Javascript Array.prototype不修改原始数组,javascript,arrays,Javascript,Arrays,我想在不修改原始数组的情况下创建一个新的数组方法 my_array.push('foo') //modifies my_array my_array.slice(2) //returns a new array without modifying my_array 我想创建一个新的Array.prototype方法,该方法返回一个数组,而不修改调用它的数组。因此,这是可能的: //[define new method here] Array.prototype.add_foo = functi

我想在不修改原始数组的情况下创建一个新的数组方法

my_array.push('foo') //modifies my_array
my_array.slice(2) //returns a new array without modifying my_array
我想创建一个新的Array.prototype方法,该方法返回一个数组,而不修改调用它的数组。因此,这是可能的:

//[define new method here] Array.prototype.add_foo = function() {...
var my_array = ['poo'];

my_array.add_foo(); //would return ['poo', 'foo'];
my_array; //would return ['poo'];

concat
不会改变原始数组。

只需先克隆数组。好的,创建一个新数组并返回它,而不是修改
这个
更简单:
返回这个。concat('foo')
@elclanrs:Good。我从未使用过/发现过.concat。Thx由于某种原因,我觉得我只能返回原始数组的修改版本,而不能返回数组的新实例。谢谢
my_array.push('foo') //modifies my_array
my_array.slice(2) //returns a new array without modifying my_array
my_array.concat('foo');