簡體   English   中英

為什么console.dir('')打印“沒有屬性”?

[英]Why does console.dir('') print “no properties”?

我的印象是字符串有屬性,比如match 為什么console.dir('')聲稱''沒有屬性(至少在Google Chrome中)?

這是因為''是字符串文字,而不是String “class”的實例。 由於在String.prototype上聲明了match等屬性,因此在使用字符串文字時不會看到它們。 如果您使用new運算符,您將看到您的期望:

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

這是Chrome開發人員工具的屏幕截圖(注意需要擴展prototype ,因為您期望看到的方法是在原型上聲明的,而不是String對象本身):

在此輸入圖像描述

可能出於同樣的原因,即console.dir(true)和console.dir(1234)說,一旦你調低旋鈕指向數據。 如果它是一個Object,代碼可能只遍歷屬性。 為什么旋轉調節旋鈕仍然存在尚不清楚。

在JavaScript中,全局String對象具有在該語言中預定義的方法。 實際字符串文字繼承全局String對象的方法,但除了“length”之外沒有其他屬性。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM