为什么console.dir('')打印“没有属性”?

时间:2011-12-19 23:57:55

标签: javascript

我认为字符串具有属性,例如match。为什么console.dir('')声称''没有属性(至少在谷歌浏览器中)?

3 个答案:

答案 0 :(得分:6)

这是因为''是一个字符串文字,而不是String“类”的实例。由于在match上声明String.prototype等属性,因此在使用字符串文字时不会看到它们。如果您使用new运算符,您将看到预期的结果:

var s = new String("hello");
console.dir(s);

以下是Chrome开发人员工具的屏幕截图(请注意需要扩展prototype,因为您期望看到的方法是在原型上声明的,而不是String对象本身:< / p>

enter image description here

答案 1 :(得分:2)

可能出于同样的原因,即console.dir(true)和console.dir(1234)说一旦你调低旋钮指向数据。如果它是一个Object,代码可能只遍历属性。为什么旋转调节旋钮仍然存在尚不清楚。

答案 2 :(得分:0)

在JavaScript中,全局String对象具有在该语言中预定义的方法。实际的字符串文字继承了全局String对象的方法,但除了“length”之外没有其他属性。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String