亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS 對象屬性相關(檢查屬性、枚舉屬性等)

2019-11-20 12:46:01
字體:
來源:轉載
供稿:網友

1.刪除屬性

delete運算符可以刪除對象的屬性

復制代碼 代碼如下:

delete person.age //即person不再有屬性age
delete person['age'] //或者這樣

delete只是斷開屬性和宿主對象的聯系,而不會去操作屬性中的屬性 看到delete a.p之后b.x仍然為1

var a = {p:{x:1}};var b = a.p;console.log(a.p.x); //1delete a.p;console.log(a.p.x); //TypeError a.p is undefinedconsole.log(a.p); //undefinedconsole.log(b.x); //1

delete只能刪除自有屬性,不能刪除繼承屬性(要刪除繼承屬性必須從定義這個屬性的原型對象上刪除它,當然,這會影響到所有繼承來自這個原型的對象)

function inherit(p){   if(p == null){  // 不能從null中繼承    throw TypeError();  }  if(Object.create){  //如果有這個方法就直接使用    return Object.create(p);  }  var t = typeof p;  if(t !== "object" || t !== "function"){  //要繼承的對象 類型要符合    throw TypeError();  }  function f(){ }; //定義一個空的構造函數  f.prototype = p; //原型指向要繼承的對象p  return new f();  //創建f對象,此對象繼承自p}var obj = {x:1};var obj1 = inherit(obj);obj1.y = 2;console.log("x = "+obj1.x+" y = "+obj1.y); //x = 1 y = 2delete obj1.x;delete obj1.y;console.log("x = "+obj1.x+" y = "+obj1.y); //x = 1 y = undefined

當然了,可配置的屬性才能用到delete
比如

delete Object.prototype; // 不能刪除 不可配置var x = 1;delete this.x; //不能刪除this.y = 1;delete y; //這樣可以刪除function f(){ }delete this.f; //不能刪除

2.檢測屬性

使用 “in"

in 運算符希望它的左操作數是一個字符串或者可以轉換為字符串,希望它的右操作數是一個對象

var data = [5,6,7];console.log("0" in data); //有下標0console.log(1 in data);  //1可以轉換成"1"console.log("4" in data); //下標只有 1 2 3 var obj = {x:1};console.log("x" in obj); //trueconsole.log("y" in obj); //falseconsole.log("toString" in obj); //true 因為obj繼承了這個方法

使用hasOwnProperty()或者propertyIsEnumerable() --- 后者是前者的增強
顧明思議

var obj = {x:1};console.log(obj.hasOwnProperty("x")); //trueconsole.log(obj.hasOwnProperty("y")); //falseconsole.log(obj.hasOwnProperty("toString")); //false 因為obj繼承了這個方法,但不是它自己的

只有檢測到是自由屬性并是可枚舉的屬性時,后者才返回true

var obj = {x:1};console.log(obj.propertyIsEnumerable("x")); //trueconsole.log(obj.propertyIsEnumerable("y")); //falseconsole.log(obj.propertyIsEnumerable("toString")); //false 因為obj繼承了這個方法,但不是它自己的console.log(Object.prototype.propertyIsEnumerable("toString")); //false 因為最原始的的 toString就是不可枚舉的

當然,也可以直接用 ”!=="運算符判斷

var obj = {x:1};console.log(obj.x !== undefined);//trueconsole.log(obj.y !== undefined);//falseconsole.log(obj.toString !== undefined); //true 

3.枚舉屬性

var obj = {x:1,y:2};for(p in obj){ console.log(p);//x y console.log(obj.p);// undefined undefined console.log(obj[p]);//1 2} 

拓展1:

每個對象都有與之相關的原型(prototype)、類(class)、可擴展性(extensible)
要檢測一個對象是否是另一個對象的原型(或處于原型鏈中),可以使用isPrototypeOf()方法

var p = {x:1}; //p原型對象繼承自Object.prototypevar o = Object.create(p); //o對象繼承自pconsole.log(p.isPrototypeOf(o));//trueconsole.log(Object.prototype.isPrototypeOf(o));//trueconsole.log(Object.prototype.isPrototypeOf(p));//true

當然,isPrototypeOf()方法和instanceof運算符非常類似
instanceof運算符希望它的左操作數是一個對象,右操作數標識對象的類。如果左側的對象是右側類的實例,則表達式返回true,否則返回false

var p = {x:1}; console.log(p instanceof Object);//truevar d = new Date();console.log(d instanceof Date);//trueconsole.log(d instanceof Object);//trueconsole.log(d instanceof Number);//false

拓展2:

對象的類屬性是一個字符串,用以表示對象的類型信息

一般調用toString()方法后返回形如 [object class]的形式

比如

復制代碼 代碼如下:

var obj = {x:1,y:2};
console.log(obj.toString());//[object Object]

所以要想獲取對象的類,就可以通過返回的字符串中找出 “class"字段  使用 slice(8,-1)
比如

function classOf(obj){ // 找出類名 if(obj === null){  return "Null"; } if(obj === undefined){  return "Undefined"; } return Object.prototype.toString.call(obj).slice(8,-1);}console.log(classOf(1)); //Number//注意,實際上是這些類型的變量調用toString()方法,而不是通過他們自身直接調用//console.log(1.toString()); //會報錯var a = 1;console.log(Number(1).toString()); //1console.log(a.toString()); //1console.log({x:1}.toString()); //[object Object]console.log(classOf(1)); //Numberconsole.log(classOf("")); //Stringconsole.log(classOf("str")); //Stringconsole.log(classOf(null)); //Nullconsole.log(classOf(false)); //Booleanconsole.log(classOf({})); //Objectconsole.log(classOf([])); //Arrayconsole.log(classOf(new Date())); //Datefunction f(){}console.log(classOf(new f())); //Object
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人精品电影| 国产福利精品av综合导导航| 国产精品视频久久| 国产手机视频精品| 国产精品99久久99久久久二8| 久久成人一区二区| 日韩精品在线电影| 色狠狠av一区二区三区香蕉蜜桃| www.99久久热国产日韩欧美.com| 欧美日韩国产综合视频在线观看中文| 久久精品国产欧美亚洲人人爽| 成人精品视频久久久久| 亚洲精品久久久一区二区三区| 亚洲国产欧美日韩精品| 成人午夜在线观看| 久久久久久久久久久免费| 欧美中文字幕精品| 懂色aⅴ精品一区二区三区蜜月| 欧美国产高跟鞋裸体秀xxxhd| 中文字幕久热精品在线视频| 97在线看福利| 日韩亚洲欧美中文高清在线| 在线播放亚洲激情| 久久久久久久久久av| 中文字幕日韩精品在线| 亚洲大胆人体av| 欧美日韩福利在线观看| 69久久夜色精品国产69乱青草| 欧美日韩美女在线观看| 久久在精品线影院精品国产| 亚洲精品720p| 91香蕉亚洲精品| 亚洲第一免费播放区| 久久人人爽人人爽人人片av高请| 国产精品一香蕉国产线看观看| 亚洲精品国产精品国自产观看浪潮| 亚洲已满18点击进入在线看片| 91久久久久久久一区二区| 久久久亚洲影院| 欧美与欧洲交xxxx免费观看| 午夜精品美女自拍福到在线| 九九热这里只有在线精品视| 91亚洲精华国产精华| 日韩激情在线视频| 亚洲人成在线一二| 亚洲va欧美va国产综合剧情| 欧美乱大交xxxxx另类电影| 2019最新中文字幕| 亚洲精品久久7777777| 国产精品一区二区久久国产| 日韩视频在线一区| 欧美性做爰毛片| 人九九综合九九宗合| 欧美孕妇毛茸茸xxxx| 2019国产精品自在线拍国产不卡| 51色欧美片视频在线观看| 久久成年人视频| 91色在线观看| 国产精品白丝jk喷水视频一区| 国产精品一区二区av影院萌芽| 国产噜噜噜噜噜久久久久久久久| 综合国产在线视频| 亚洲电影免费观看高清| 亚洲国产中文字幕久久网| 午夜精品99久久免费| 久久成年人视频| 成人国产精品日本在线| 国产小视频国产精品| 日韩欧美中文字幕在线播放| 亚洲欧美色婷婷| 亚洲第一精品电影| 亚洲欧美在线第一页| 国产精品午夜一区二区欲梦| 91国内免费在线视频| 精品国产一区二区三区久久久| 亚洲一级一级97网| 国产精品久久久久av| 亚洲激情电影中文字幕| 国产亚洲欧洲黄色| 日本国产一区二区三区| 国产免费观看久久黄| 一区二区三区视频免费在线观看| 青青草国产精品一区二区| 国产精品视频99| 国产一区二区三区18| 日韩中文在线观看| 在线丨暗呦小u女国产精品| 亚洲一区亚洲二区亚洲三区| 亚洲激情电影中文字幕| 欧美色视频日本版| 日韩精品视频免费| 国产欧美va欧美va香蕉在线| 日韩免费中文字幕| www.色综合| 日韩av最新在线观看| 久久久久99精品久久久久| 欧美激情伊人电影| 色综合天天综合网国产成人网| 欧美风情在线观看| 色偷偷偷亚洲综合网另类| 久久久欧美精品| 亚洲激情第一页| 九色精品美女在线| 欧美福利小视频| 欧美日韩国产一中文字不卡| xvideos成人免费中文版| 欧美裸体xxxxx| 亚洲高清久久久久久| 国产精品夫妻激情| 久久久久久久国产精品| 亚洲天堂成人在线视频| 国产视频精品在线| 大荫蒂欧美视频另类xxxx| 精品无码久久久久久国产| 国产精品99久久久久久久久久久久| 亚洲国产精品免费| 欧美在线视频网站| 欧美一级大片视频| 亚洲成人黄色在线| 黄色成人av网| 91视频国产高清| 久久久精品久久久久| 亚洲激情视频网站| 欧美性猛xxx| 久久久久久91| 欧美激情精品久久久久久蜜臀| 欧美日本啪啪无遮挡网站| 91亚洲精品久久久久久久久久久久| 日本一区二区在线播放| 成人网中文字幕| 久久精品99无色码中文字幕| 福利视频第一区| 亚洲精品wwwww| 中文国产成人精品| 国产精品久久久久久av福利软件| 国产亚洲在线播放| 精品毛片三在线观看| 精品综合久久久久久97| 欧美大秀在线观看| 亚洲成av人影院在线观看| 国产一区二区色| 中文字幕在线看视频国产欧美在线看完整| 欧美国产欧美亚洲国产日韩mv天天看完整| 92福利视频午夜1000合集在线观看| 亚洲永久在线观看| 欧美小视频在线观看| 国模精品一区二区三区色天香| 国产免费一区二区三区在线观看| 国产精品自拍偷拍视频| 国产亚洲美女精品久久久| 久久伊人精品天天| 亚洲人精选亚洲人成在线| 亚洲一区二区精品| 亚洲日本欧美中文幕| 91香蕉国产在线观看| 亚洲日韩中文字幕| 久久视频在线观看免费| 欧美激情女人20p| 91免费国产网站| 日韩电视剧免费观看网站| 久久久精品一区| 久久精品成人欧美大片古装| 久久中文字幕在线视频| 日韩美女视频免费看|