您能解释一下以下的代码吗?它在我的浏览器控制台中工作。那么这是如何工作的呢?新关键字根本不会创建新实例或者它是如何创建的?
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"
请解释。
答案 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/#section_7