JavaScript字符串文字构造函数

时间:2017-02-03 14:39:01

标签: javascript

我在尝试使用intanceof()运算符时遇到了这个问题。使用字符串对象时,此代码返回true:



var aStringObj = new String('String');
console.log(typeof aStringObj); // object
console.log(aStringObj instanceof String); // true




...并使用Literal Strings返回false,如下所示:



var aLiteralString = "Test literal";
console.log(typeof aLiteralString); // string
console.log(aLiteralString instanceof String); // false




根据MDN,该运算符测试对象原型链中constructor.prototype的存在,并且两者都存在; aStringObj和aLiteralString,.constructor.prototype是相同的:



var aStringObj = new String('String');
console.log(aStringObj.constructor.prototype);// String {length: 0, [[PrimitiveValue]]: ""}

var aLiteralString = "Test literal";
console.log(aLiteralString.constructor.prototype); // String {length: 0, [[PrimitiveValue]]: ""}




这是否意味着原始值不是任何原型的实例?文字字符串没有已知的构造函数?

我学习JS越多,我头脑中就会出现更愚蠢的问题。提前致谢。

0 个答案:

没有答案