国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()

2019-11-20 09:15:45
字體:
來源:轉載
供稿:網(wǎng)友

首先了解枚舉屬性

一般利用for~in遍歷

var a = [1,2,3];for(var i in a){console.log(a[i]);}orvar o = {p1:1,p2:2};for(var i in o){console.log(i+'='+o[i]);}//p1=1;p2=2;

<1>并不是所有的屬性都會在for~in遍歷中顯示。比如(數(shù)組的)length屬性和constructor屬性。那些已經(jīng)被顯示的屬性被稱為可枚舉的,可以通過各個對象所提供的propertyIsEnumerable()方法來判斷其中有哪些可枚舉的屬性;

<2>原型鏈中的各個屬性也會被顯示出來,前提是它們可枚舉的,hasOwnProperty()來判斷一個屬性是對象自身屬性還是原型屬性;

<3>對于所有的原型屬性,propertyIsEnumerable()都會返回false,包括那些在for~in遍歷中可枚舉的屬性。

js代碼示例

function dog(name,color){this.name = name;this.color = color;this.someMethod = function(){return 1;}}dog.prototype.price=100;dog.prototype.rating=3;var newDog = new dog("doggg","yellow");for(var prop in newDog){console.log(prop+'='+newDog[prop]);}//name=doggg//color=yellow//someMethod=function (){return 1;}//price=100//rating=3newDog.hasOwnProperty('name');//true;newDog.hasOwnProperty('price');//false;

只顯示自身屬性

for(var prop in newDog){if(newDog.hasOwnProperty(prop )){console.log(prop+'='+newDog[prop]);}}newDog.propertyIsEnumerable('name');//truenewDog.propertyIsEnumerable('constructor');//false

注意:內建屬性和方法大部分是不可枚舉的

任何來自原型鏈中的屬性也是不可枚舉的

如果propertyIsEnumerable()的調用是來自原型鏈上的某個對象,那么該對象中的屬性是可枚舉的

newDog.constructor.prototype.propertyIsEnumerable('price');//true

isPrototypeOf():每個對象都有,表示當前對象是否是另一個對象的原型

js代碼示例

var monkey = {hair:true,feeds:'bananas',breathes:'air'};function Human(name){this.name = name;}Human.prototype = monkey;var george = new Human('George');monkey.isPrototypeOf(george);//true

以上所述是小編給大家介紹的JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf(),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长葛市| 乐至县| 肃宁县| 甘南县| 新闻| 奈曼旗| 江北区| 龙里县| 潼关县| 昭通市| 林芝县| 盐源县| 信宜市| 保康县| 崇阳县| 手游| 临高县| 北宁市| 柞水县| 潍坊市| 富平县| 阳曲县| 涟源市| 同心县| 攀枝花市| 高雄市| 普兰县| 乌兰察布市| 灵寿县| 南京市| 德令哈市| 出国| 锡林郭勒盟| 儋州市| 南安市| 新河县| 昭觉县| 缙云县| 互助| 綦江县| 徐汇区|