您的位置:首頁技術文章
文章詳情頁

javascript - 紅寶書152頁hasPrototypeProperty(object,name)錯了嗎?

瀏覽:105日期:2023-05-14 14:40:09

問題描述

function hasProtoproperty(object,name){ return !object.hasOwnproperty(name) && (name in object);}

紅寶書P152說該函數能檢測屬性是在原型還是在實例中

true在原型中false在實例中

但是,當原型和實例中都不存在某屬性的時候也會返回false啊

問題解答

回答1:

翻了一下書,函數沒有錯,但書中的解釋確實容易引起誤解。

看函數名就好了——hasPrototypeProperty(object, name)——原意是判斷一個對象的原型上有無指定屬性,只要原型上沒有指定屬性,就會返回 false。

我理解書中的解釋是針對name這個屬性說的,以對象有這個屬性為前提,如果函數返回 false,那這個屬性是在原型上。

回答2:

剛才我試了下,確實是,可能書中只是強調區別和方法吧,自己用的時候加個判斷就完美了

標簽: JavaScript
国产综合久久一区二区三区