我想在不修改原始数组的情况下创建一个新的Array方法。
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'];
答案 0 :(得分:4)
my_array.concat('foo');
concat
不会改变原始数组。
答案 1 :(得分:2)
Array.prototype.add_foo = function(){
var ret = this.slice(0); //make a clone
ret.push("foo"); //add the foo
return ret; //return the modified clone
}