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

Javascript怎么删除对象的属性

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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

相关文章

  • PHP怎么遍历数组替换数组中的元素的值
  • 一起聊聊JavaScript函数式编程
  • PS鼠绘清纯可爱的古装卡通小女孩
  • 为WordPress主题文章纯代码添加历史上的今天列表
  • 介绍PHP基于Thinkphp5的砍价活动相关设计
  • CorelDRAW绘制可爱的卡通蘑菇与花朵
  • Photoshop制作银色质感的金属字教程
  • 一招教你使用Node.js中iis部署运行node(附代码)
  • Uniapp发布为H5版本时如何隐藏访问路径的#符号
  • Photoshop制作冒气泡的透明艺术字教程

文章分类

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

最近更新的内容

    • 给DEDECMS后台加上批量修改tags功能
    • Photoshop绘制逼真的老式收音机
    • PHP如何实现获取验证码
    • Photoshop制作质感金属文字效果
    • 网站SEO第一步:忘掉你的目标关键词
    • PHP实现搜索联想功能(基于字典树算法)
    • 微信小程序wx.request请求数据报错
    • PS制作立体3D烫金艺术文字效果的教程
    • Illustrator结合PS制作超酷的立体字教程
    • 帝国cms忘记后台登录认证码和安全问题的解决方法

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

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