当前第2页 返回上一页
任何用let或const声明的属性不能够从它被声明的作用域中删除,我试了下,和var的效果是一样的,目前只能理解到这,如果知道的大神请指点下
5. 不可设置的属性
Math, Array, Object等内置对象的属性不可删除
1 2 3 | console.log(Array.length);
delete Array.length
console.log(Array.from); 0
|
1 2 3 | delete Array.prototype
console.log(Array.prototype)
console.log(Array.prototype.join);
|
需要注意的是,只是这些内置对象的属性不可删除,内置对象的方法是可以删除的,比如:
1 2 3 | console.log(Array.forEach);
delete Array.forEach
console.log(Array.forEach);
|
Object.defineProperty()设置为不可设置的属性,不可删除
1 2 3 4 5 6 7 8 | var person = {};
Object.defineProperty(person, 'name' , {
value: '张三' ,
configurable: false
})
delete person.name
console.log(person.name);
console.log( delete person.name);
|
var, let以及const创建的不可设置的属性不能被delete操作删除
1 2 3 4 5 6 7 8 9 10 | var a = 'abc' ;
var aVal = Object.getOwnPropertyDescriptor(window, 'a' );
console.log(aVal);
|
1 2 3 4 5 6 7 8 9 10 11 12 | var a = 'abc' ;
delete a
var aVal = Object.getOwnPropertyDescriptor(window, 'a' );
console.log(aVal);
console.log( delete a);
|
如果开始没有阅读,再去看看吧Object. defineProperty。如果了解,可以直接略过。
6. 删除数组
使用delete操作符删除数组总某项元素时,被删除的元素会从该数组中删除,但是数组的length并不会改变
1 2 3 4 5 | var arr = [1, 2, 3];
delete arr[1]
console.log(arr);
console.log( delete arr[1])
console.log(arr[1]);
|
但是这里存在一个问题
所以如果想把数组中某一项赋值成undefined时,不应该使用delete操作符,而是直接使用下边赋值
1 2 3 | arr[1] = undefined;
console.log(1 in arr)
|
【推荐学习:javascript高级教程】
以上就是javascript如何在object中删除属性的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
javascript 中 setinterval 函数怎么用?
javascript怎么把字符串转换为数组
详解使用 javascript 解析 url的方法
url完整结构以及同源跨域处理的介绍
javascript常量和变量的区别有哪些
javascript的不等于是啥符号
javascript怎么删除table表格
javascript中日期如何转为时间戳
javascript中怎么将xml转为json
javascript数组求和的5种常用方法
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » javascript如何在object中删除属性