使用初始化函数时,我无法通过新对象传递参数。考虑以下示例,我希望能够创建一个返回数组的对象。对象 Ex1 可以很好地做到这一点:
Ex1 = function() {
myVar = [];
myVar = Array.apply( myVar, arguments );
return myVar;
};
ex1 = new Ex1( 'red', 'green', 'blue' );
console.log( ex1);
/* ["red", "green", "blue"] */
但是,我想给我们一个初始化程序来保持我的代码干净。对象 Ex2 显示了我意想不到的结果:
Ex2 = function() {
init = function() {
myVar = [];
myVar = Array.apply( myVar, arguments );
return myVar;
};
return init( arguments );
};
ex2 = new Ex2( 'red', 'green', 'blue' );
console.log( ex2 );
/* [[object Arguments] {
0: "red",
1: "green",
2: "blue"
}] */
从日志中可以看出,结果不是一个干净的数组。
在使用初始化函数并将参数传递给它时创建新对象时如何返回数组?