Array.prototype 不修改原数组

nor*_*can 3 javascript arrays

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

my_array.push('foo') //modifies my_array
my_array.slice(2) //returns a new array without modifying my_array
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的 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'];
Run Code Online (Sandbox Code Playgroud)

ben*_*adk 7

my_array.concat('foo');
Run Code Online (Sandbox Code Playgroud)

concat 不会改变原始数组。