600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > javascript怎么删除对象的属性

javascript怎么删除对象的属性

时间:2022-10-17 15:38:28

相关推荐

javascript怎么删除对象的属性

web前端|js教程

javascript,删除对象的属性

web前端-js教程

form水晶报表源码下载,vscode不复制背景色,ubuntu最全分区,tomcat 7 8差别,爬虫族国家,php去除指定字符串,网络营销形式有哪些seolzw

delete运算符可以删除对象的属性。它的操作数应当是一个属性访问表达式。让人感到意外的是,delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性:

移动云商城3.2源码,ubuntu 怎么保存退出,tomcat8兼容7,爬虫需要哪些,js转换php时间戳,渠县seolzw

delete book.author; //book不再有属性authordelete book["main title"] //book不会再有属性"main title"

delete运算符只能删除自由属性,不能删除继承属性(要删除继承属性必须从定义这个属性的原型对象上删除它,而且这会影响到所有继承自这个原型的对象)。

注:

小明跑腿app源码,编译 vscode源码,ubuntu多显示器,auto tomcat,sqlite查看qq,免费租用服务器,shopex快速购买插件,前端框架组件实例,php微博爬虫,涡阳php,seo软件哪个好用,网站源码有多少种语言,淘宝客手机网页,拉勾简历模板,页面加载前显示进度条,java权限管理系统源码,快速傅里叶变换及其c程序 pdflzw

a={p:{x:1}};b=a.p;delete a.p;

执行这段代码后b.x的值仍为1。由于已经删除的属性的引用依然存在,因此在JavaScript的某些实现中,可能因为这种不严谨的代码而造成内存泄漏。所以在销毁对象的时候,要遍历属性中的属性,依次删除。

当delete表达式删除成功或没有任何副作用(比如删除不存在的属性时),它返回true。如果delete后不是一个属性访问表达式,delete同样返回true。

o = {x:1};delete o.x; //删除x,返回true。delete o.x; //什么都没做(x已经不存在了),返回truedelete o.toString; //什么也没做(toString是继承来的),返回truedelete 1; //无意义,返回true

delete不能删除那些可配置性为false的属性(尽管可以删除不可扩展对象的可配置属性)。某些内置对象的属性是不可配置的,比如通过变量声明和函数声明创建的全局对象的属性。在严格模式中,删除一个不可配置属性会报一个类型错误。在非严格模式下中,在这些情况下的delete操作符 会返回false:

delete Object.prototype; //不能删除,属性是不可配置的var x = 1;delete this.x; //不能删除这个全局变量,function f(){}delete this.f; //同样也不能删除全局函数

当在非严格模式中删除全局对象的可配置和属性时,可以省略对全局对象的引用,直接在delete操作符后跟随要删除的属性名即可:

this.x = 1; //创建一个可配置的全局属性(没有用var)delete x; //将它删除

然而在严格模式中,delete后跟随一个非法的操作数(比如x),则会报一个语法错误,因此必须显示指定对象及其属性:

delete x; //在严格模式下报语法错误delete this.x; //正常工作

【推荐学习:javascript高级教学】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。