[英]JavaScript inheritance Object.create() not working as expected
[英]Javascript object inheritance not showing expected result
我曾經認為兩個賦值a = "foo"
和a = new String('foo')
是相同的東西。 但是使用前一個聲明, console.log(a instanceof Object)
或console.log(a instanceof String)
返回false
,而它返回后者的預期true
。
由於兩個原因,這似乎很奇怪。 首先,即使使用正常的聲明a = 'foo'
,所有字符串方法都會對它起作用,這表明它繼承自String
對象。 其次, a.constructor
返回String
。
誰能解釋一下發生了什么?
"foo"
是一個原始的字面意思。
但是new String("foo")
是String類的一個實例。
您可以在原始值上調用方法,因為
JavaScript會自動將基元轉換為String對象,因此可以對原始字符串使用String對象方法。 在要在原始字符串上調用方法或發生屬性查找的上下文中,JavaScript將自動包裝字符串原語並調用方法或執行屬性查找。
(來自MDN )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.