• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Javascript怎么删除对象的属性

Javascript怎么删除对象的属性

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Javascript,删除对象的属性等相关知识,希望对您有所帮助

在javascript中,可以使用delete运算符来删除对象的属性,它的操作数应当是一个属性访问表达式;例“var obj={x:1};delete obj.x;”。delete运算符只能删除自由属性,不能删除继承属性。


Javascript怎么删除对象的属性


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

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

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

注:

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; //正常工作


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一起来聊聊JavaScript函数柯里化
  • 在javascript中,NaN是什么类型?
  • javascript调试之console.table()
  • Javascript中常见的内置对象有哪些
  • Javascript怎么实现字符串替换星号
  • 解决JavaScript中数组排序sort不发生改变
  • Javascript怎么实现红绿灯
  • 两行 Javascript 代码生成 UUID的方法
  • Javascript怎么实现四位随机验证码
  • javascript怎么判断是否为null

相关文章

  • 2022-04-29宝塔面板一键部署wordpress,网址打不开怎么办?
  • 2022-04-29Photoshop制作破碎玻璃字体效果教程
  • 2022-04-29为网站选择一个适当的DMOZ目录
  • 2022-04-29html5以及jQuery实现本地图片上传前的预览代码实例讲解
  • 2022-04-29JS去除腾讯爱奇艺优酷视频右上角LOGO
  • 2022-04-29宝塔linux管理助手安装完后显示IP为内网IP怎么办
  • 2022-04-29Photoshop使用3D工具制作超酷的金属立体字
  • 2022-04-29使用JS或CSS如何实现瀑布流布局,几种方案介绍
  • 2022-04-29phpcms v9添加热门搜索关键词的方法
  • 2022-04-29纯CSS实现心形加载动画(附源码)

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 纯CSS3怎么创建瀑布流布局?columns方法浅析
    • Phpcms V9内容编辑器支持JavaScript的设置方法
    • PhotoShop+coreldRAW打造喜迎国庆节海报制作教程
    • 关于PHP正则匹配中文
    • 纯css实现gif动图生成字画符
    • Photoshop制作超逼真缝线效果
    • vue中query和params的区别是什么
    • WordPress官网429无法打开导致不能更新版本及插件问题解决方法
    • 解析关于Thinkphp5复合型缓存的使用问题
    • 动态获取织梦CMS最新更新 利于收录的SiteMap.php文

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有