Javascript新关键字 - 代码说明请求

时间:2012-07-18 08:38:27

标签: javascript

您能解释一下以下的代码吗?它在我的浏览器控制台中工作。那么这是如何工作的呢?新关键字根本不会创建新实例或者它是如何创建的?

 var myObject = new Object(); // Produces an Object() object.
    myObject['0'] = 'f';
    myObject['1'] = 'o';
    myObject['2'] = 'o';
    console.log(myObject); // Logs Object { 0="f", 1="o", 2="o"}

    var myString = new String('foo'); // Produces a String() object.
    console.log(myString); // Logs foo { 0="f", 1="o", 2="o"

请解释。

2 个答案:

答案 0 :(得分:1)

  

如果它是一个新实例,它如何将myObject的值传递给myString变量

没有。您正在使用字符串文字初始化String对象:

new String('foo'); 

foo 与您分配给对象的三个属性的字符完全不同 foo 。为了比较,replace the second foo with bar

答案 1 :(得分:0)

这是完全正常的行为:

new String创建Object,如果您要输入"var myString = new String('moo')",您将获得另一个具有不同值的对象。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/#se‌​ction_7