js中如何判斷屬性是對象實例中的屬性還是原型中的屬性


ECMAScript5中的hasOwnProperty()方法,用於判斷只在屬性存在與對象實例中的時候,返回true,in操作符只要通過對象能訪問到屬性就返回true。

因此只要in操作符返回true而hasOwnProperty()返回false,就可以確定屬性是原型中的屬性。

所以有如下函數:

function hasPrototypeProperty(obj, name) {
    return !obj.hasOwnProperty(name) && (name in obj);
}

當屬性存在對象實例上的時候,函數返回false,表示該屬性不是存在原型上,當屬性存在原型上的時候,函數返回true。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM