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

首頁 > 編程 > JavaScript > 正文

JavaScript中對象property的刪除方法介紹

2019-11-20 13:33:30
字體:
來源:轉載
供稿:網友

JavaScript中,可以使用delete操作符來刪除對象中的property:


復制代碼 代碼如下:

var t = {a:42, b:26};
console.log(t);//Object {a=42, b=26}
delete t.a;
console.log(t);//Object {b=26}


這種property刪除操作的局限性在于:delete操作符只能刪除對象自身所有的property,無法刪除其從prototype對象處繼承而來的property。如果想刪除prototype對象中的property,必須顯式獲取prototype對象后,在prototype對象中進行操作:


復制代碼 代碼如下:

var o = {x:1, y:2};
var a = Object.create(o);
a.z = 3;
console.log(a);//Object {z=3, x=1, y=2}
delete a.x;//Can NOT delete inherited property
console.log(a);//Object {z=3, x=1, y=2}
delete a.z;//Can delete own property
console.log(a);//Object {x=1, y=2}
delete a.__proto__.x;
console.log(a);//Object {y=2}


如果刪除了prototype對象中的property,那么所有從該prototype對象中繼承的對象都會收到影響。

 

對于delete操作的返回值,JavaScript中遵循以下規則:

 

1.如果delete操作成功,返回true。
2.如果delete操作無任何效果(比如要刪除的property并不存在),也返回true。
3.如果要delete的property,其configurable屬性為false,那么在嚴格模式下會報TypeError錯誤,而在非嚴格模式下則返回false。
如果delete操作符所作用的是全局對象的property,那么在非嚴格模式下,代碼中的全局對象可以省略:

復制代碼 代碼如下:

this.c = 42;
delete c;//equal to delete this.c;

需要注意的是,在嚴格模式下,上述寫法會拋SyntaxError錯誤。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 无为县| 古丈县| 郸城县| 张家界市| 拉孜县| 磐安县| 深圳市| 仙游县| 前郭尔| 长武县| 怀来县| 哈尔滨市| 横峰县| 久治县| 应城市| 高平市| 张家界市| 登封市| 德庆县| 房山区| 泉州市| 黄梅县| 新兴县| 泸州市| 永清县| 始兴县| 保亭| 天台县| 招远市| 新营市| 布拖县| 聂拉木县| 鄂伦春自治旗| 启东市| 韶山市| 阿瓦提县| 拉孜县| 宁远县| 中超| 三亚市| 太湖县|