我想以功能方式创建10个Fly
个对象。我认为这样可行:
var flies = new Array(10).map(function() {
return new Fly();
});
没有。它创建一个长度为10的数组,其值为undefined
。
如何在不使用for(var i = 0; i < 10; i++)...
的情况下创建10个对象?
编辑:这只是为了学习而进行的学术练习。如果在引擎盖下使用for
,则会发现它。我只想弄清楚JavaScript可以做什么。
答案 0 :(得分:2)
开箱即用,只有@elcanrs方式。 如果您使用诸如Underscore之类的库,则可以使用http://underscorejs.org/#times
var flies = _.times(10, function(){return new Fly()})
答案 1 :(得分:1)
我非常确定任何花哨的方法都会在较低级别使用for
或其他循环...如果你真的想要摆脱这样,您可以使用递归方法并创建自己的Fly Factory功能!
老实说,IMO是浪费精力。但至少它没有循环! = d 强>
function Fly() {
}
function CreateFlies(n) {
var arr = [new Fly()];
arr = (n > 1 ? arr.concat(CreateFlies(n-1)) : arr);
return arr;
}
var flies = CreateFlies(10);
alert(flies);
&#13;