es6删除对象的属性_JavaScript删除和清空对象属性

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 09:47   33   0

本文介绍一下如何利用JavaScript删除对象中的属性。

这是非常基础简单的操作,可能刚接触JavaScript的朋友会产生一些误操作。

首先看一段代码实例:[JavaScript] 纯文本查看 复制代码let antzone = {

webName: "蚂蚁部落",

url:"www.softwhy.com",

address:"青岛市南区",

age:4

}

antzone.webName="";

antzone.age=undefined;

可能以为将对象属性值设置为空或者undefined等表示空的值就是删除属性。

然而事实仅仅是将属性值设置为空或者undefined,属性依然存在。

代码实例如下:[JavaScript] 纯文本查看 复制代码运行代码let antzone = {

webName: "蚂蚁部落",

url:"www.softwhy.com",

address:"青岛市南区",

age:4

}

antzone.webName="";

antzone.age=undefined;

console.log(Object.keys(antzone));

代码运行效果截图如下:

可以看到对象的属性并没有被删除。

Object.keys()方法可以获取对象的可枚举自有属性名称。

一.删除对象指定属性:

非常简单的操作,使用delet运算符即可实现。

代码实例如下:[JavaScript] 纯文本查看 复制代码运行代码let antzone = {

webName: "蚂蚁部落",

url:"www.softwhy.com",

address:"青岛市南区",

age:4

}

delete antzone.age;

console.log(Object.keys(antzone));

代码运行效果截图如下:

上面的代码通过delete运算符可以删除age属性。

并不是将age属性值赋值为空或者undefined等,而是切切实实把它从对象中删除。

二.清空对象属性:

操作也非常简单,通过循环遍历挨个删除即可。

代码实例如下:[JavaScript] 纯文本查看 复制代码运行代码let antzone = {

webName: "蚂蚁部落",

url:"www.softwhy.com",

address:"青岛市南区",

age:4

}

for(let key in antzone){

delete antzone[key];

}

console.log(Object.keys(antzone));

代码运行效果截图如下:

由运行效果截图可以看到,对象中已经被清空。

三.并不是所有属性都是可以删除的:

(1).原型链继承的属性不能删除。

(2).被冻结或者密封对象的属性是不可以被删除的。

原型链这个非常好理解,因为继承的属性本质上不是当前对象自有,而是所有对象实例共享。

这个属性本质不是位于当前对象,而是在原型链某个对象之上,这怎么能删除。

关于被冻结和密封对象的属性不能被删除,可以参阅如下两篇文章:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP