2012-02-12 12 views
9

每当我使用数组,我总是用[]的风格,但是,当我想用​​我用new Array(N)元素的固定金额创建一个数组(我不知道这样做的任何其他方式)正确的方法来创建一个数组,N个元素没有旧的'新阵列(N)'?

我认为这不是什么大问题,直到我读到这一点,这些言辞激烈:

任何人都这样做,使用“新的Array()”而不是“[]”或“新 对象()”而不是“{}”需要重新学习JavaScript。

我真的想避免书面方式恶意代码。任何人都会告诉我正确的方向吗?

+2

我其实已经认为你已经很好了。大部分时间分配数组时,使用'[]'语法,当需要特定大小时使用'new Array(n)'。那里没有错,你发布的报价并不能说明所有情况。 – 2012-02-12 03:13:14

+0

@Michael很好的了解!,我想我现在可以睡着灯:) – mithril333221 2012-02-12 03:16:54

+1

我没有看到这样使用'Array'构造函数的错误。它的存在是有原因的。 – 2012-02-12 03:18:39

回答

5

我不会太担心2006年在博客上有些随意评论特别是因为你的使用情况不只是new Array()。您正在使用专门为此提供的特殊构造函数。

此外,使用new Array()代替[]几乎最糟糕的事情的人可以用JS做。

+1

你可能是对的,我应该停止睡在胎位和灯光因为一个6岁的职位 – mithril333221 2012-02-12 03:38:10

+0

请注意,这不会使这个报价必然_wrong_ - 只是我们需要能够识别夸张当我们看到它时。 – 2013-06-27 20:43:26

1
function repeat(str, len){ 
    str= str || ''; 
    len= len || 1; 
    return Array(len+1).join(str); 
} 

repeat('*',25) 

// returned value: (String) 
+0

这是一个坏习惯。通常,省略'new'关键字是危险的和不正确的。只是发生'Array'构造函数行为良好,并通过在内部有效地用'new'关键字有效地重新调用构造函数来纠正你的错误。 – 2012-05-21 16:24:01

+0

我不同意这是一个坏习惯。当他们习惯使用JavaScript时,有些人可能会遇到新的vs类工厂的几次绊脚石,但它几乎不需要教条式的练习(总是使用新的!或者总是使用工厂!),因为你可能偶尔会假设当它不是时,功能是一个工厂。这很容易表面和正确。通过语法提供最实用的语法清晰度。 'Point(x,y)'和JQuery的'$'对于工厂是有意义的,'new'可以用于不经常和不断创建的任何东西,比如'new Sprite(monsters [“dragon”])'' – Plynx 2013-06-27 15:39:57

0

我知道这个问题已经很老了,但这里是我如何使用JavaScript的文字语法将它编码为新数组(大小)的替代方法。

var arr = []; 
arr.length = size; 
相关问题