淺談js使用in和hasOwnProperty獲取對象屬性的區(qū)別
in判斷的是對象的所有屬性,包括對象實(shí)例及其原型的屬性;
而hasOwnProperty則是判斷對象實(shí)例的是否具有某個(gè)屬性。
示例代碼:
<script type="text/javascript"> function Person(){ } Person.prototype.name = "allen"; var person = new Person(); console.log(person.hasOwnProperty("name")); //false console.log("name" in person); //true console.log(person.name); //"allen" person.name = "justforse"; console.log(person.hasOwnProperty("name")); //true console.log("name" in person); //true console.log(person.name); //"justforuse" delete person.name; console.log(person.hasOwnProperty("name")); //false console.log("name" in person); //true console.log(person.name); //"allen" </script>
以上代碼執(zhí)行的時(shí)候,name屬性要么是從實(shí)例中獲取的,要么是來源于原型,所以使用in 來訪問 name屬性始終返回true;而hasOwnProperty()只在屬性存在與對象實(shí)例中時(shí)才返回true,當(dāng)刪除了實(shí)例中的name屬性后,就恢復(fù)了原型中name屬性的連接,所以返回allen。
這篇淺談js使用in和hasOwnProperty獲取對象屬性的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript設(shè)計(jì)模式之觀察者模式的多個(gè)實(shí)現(xiàn)版本實(shí)例
這篇文章主要介紹了Javascript設(shè)計(jì)模式之觀察者模式的多個(gè)實(shí)現(xiàn)版本實(shí)例,本文給出3種實(shí)現(xiàn)版本代碼,同時(shí)給出了Jquery實(shí)現(xiàn)版本,需要的朋友可以參考下2015-03-03JavaScript代碼實(shí)現(xiàn)左右上下自動(dòng)晃動(dòng)自動(dòng)移動(dòng)
最近幾天做了一個(gè)項(xiàng)目,原來是用css3動(dòng)畫做的,由于不兼容IE,改成用js做了,特此分享給大家,供大家參考2016-04-04一個(gè)JavaScript去除字符串末尾的空白實(shí)例代碼
這是一個(gè)JavaScript去除字符串末尾的空白實(shí)例代碼,很簡單,但很實(shí)用,喜歡的朋友可以參考下2014-09-09layui form表單提交之后重新加載數(shù)據(jù)表格的方法
今天小編就為大家分享一篇layui form表單提交之后重新加載數(shù)據(jù)表格的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09Kindeditor單獨(dú)調(diào)用多圖上傳實(shí)例
下面小編就為大家?guī)硪黄狵indeditor單獨(dú)調(diào)用多圖上傳實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07js單獨(dú)獲取一個(gè)checkbox看其是否被選中
這篇文章主要與大家分享js獲取一個(gè)checkbox看其是否被選中的具體實(shí)現(xiàn),很簡單,但很實(shí)用,需要的朋友可以參考下2014-09-09