使用构造函数创建变量

时间:2014-03-03 01:46:07

标签: javascript

我正在环顾四周,看到这个页面在创建变量时使用StringArray构造函数。

这与不使用它们有何不同?

示例:

var str = "string"; // How I'd normally do it.
var str = new String("string"); // How they did it.

var arr = ["Array", "Item"]; // How I'd normally do it.
var arr = new Array("Array", "Item"); // How they did it.

这两者究竟有何不同?

1 个答案:

答案 0 :(得分:3)

var str = "string"; // typeof string

这表示为内存块,如果您不想在其上调用成员,请使用它

var str = new String("string"); // typeof object

这是一个盒装对象,它消耗的资源略多,但是如果你打电话就是那样。

"Hello".length;

JS解析器必须首先从字符串内存创建盒装对象,然后调用方法,这甚至更慢。

数组语法始终是JS中的盒装对象:[]只是new Array() AFAIK的语法简写。嗯,差不多:请看下面的zzzzBov评论。