文章詳情頁
javascript - 紅寶書152頁hasPrototypeProperty(object,name)錯了嗎?
瀏覽:87日期:2023-05-14 14:40:09
問題描述
function hasProtoproperty(object,name){ return !object.hasOwnproperty(name) && (name in object);}
紅寶書P152說該函數(shù)能檢測屬性是在原型還是在實(shí)例中
true在原型中false在實(shí)例中
但是,當(dāng)原型和實(shí)例中都不存在某屬性的時候也會返回false啊
問題解答
回答1:翻了一下書,函數(shù)沒有錯,但書中的解釋確實(shí)容易引起誤解。
看函數(shù)名就好了——hasPrototypeProperty(object, name)——原意是判斷一個對象的原型上有無指定屬性,只要原型上沒有指定屬性,就會返回 false。
我理解書中的解釋是針對name這個屬性說的,以對象有這個屬性為前提,如果函數(shù)返回 false,那這個屬性是在原型上。
回答2:剛才我試了下,確實(shí)是,可能書中只是強(qiáng)調(diào)區(qū)別和方法吧,自己用的時候加個判斷就完美了
標(biāo)簽:
JavaScript
排行榜

熱門標(biāo)簽