位置: 编程技术 - 正文

javascript 中的 delete及delete运算符(js的delegate)

编辑:rootadmin

推荐整理分享javascript 中的 delete及delete运算符(js的delegate),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:JavaScript 中的逻辑运算符包括( ),javascript decode,js的delegate,JavaScript 中的逻辑运算符包括哪些?(多选),JavaScript 中的构造函数?,JavaScript 中的基本数据类型不包括下列哪一项?,JavaScript 中的构造函数?,JavaScript 中的基本数据类型不包括下列哪一项?,内容如对您有帮助,希望把文章链接给更多的朋友!

那么,为什么我们能删除一个对象的属性:

但却不能删除一个变量:

也不能删除一个函数:

注意:delete 只有当一个属性无法被删除时才返回 false。

每一个属性拥有零至多个如内部属性——*ReadOnly,DontEnum,DontDelete和Internal**。 你可以把它们想象为标签——一个属性可能拥有也可能没有某个特殊的内部属性。 在今天的讨论中,我们所感兴趣的是 DontDelete。

当声明变量和函数时,它们成为了变量对象(Variable object)——要么是活化对象(在函数代码中), 要么是全局对象(在全局代码中)——的属性,这些属性伴随生成了内部属性 DontDelete。 然而,任何显式/隐式赋值的属性不生成 DontDelete。 而这就是本质上为什么我们能删除一些属性而不能删除其他的原因。

/* 'foo'是全局对象的一个属性,它通过变量声明而生成,因此拥有内部属性DontDelete

这就是为什么它不能被删除*/

'是全局对象的一个属性,它通过变量声明而生成,因此拥有DontDelete子

这就是为什么它同样不能被删除*/

/* 'baz'也是全局对象的一个属性,

然而,它通过属性赋值而生成,因此没有DontDelete

这就是为什么它可以被删除*/

1.5、内建和DontDelete | Build-ins and DontDelete

所以这就是所有这一切发生的原因:属性的一个特殊的内部属性控制着该属性是否可以被删除。 注意:内建对象的一些属性拥有内部属性 DontDelete,因此不能被删除; 特殊的 arguments 变量(如我们所知的,活化对象的属性)拥有 DontDelete; 任何函数实例的 length (返回形参长度)属性也拥有 DontDelete:

与函数 arguments 相关联的属性也拥有 DontDelete,同样不能被删除

1.6、未声明的变量赋值 | Undeclared assignments

你可能记得,未声明的变量赋值会成为全局对象的属性,除非这一属性在作用域链内的其他地方被找到。 而现在我们了解了属性赋值和变量声明的区别——后者生成 DontDelete 而前者不生成——这也就是为什么未声明的变量赋值可以被删除的原因了。

注意:内部属性是在属性生成时确定的,之后的赋值过程不会改变已有的属性的内部属性。 理解这一区别是重要的。

总结:

javascript 中的 delete及delete运算符(js的delegate)

变量和函数声明都是活化(Activation)全局(Global)对象的属性。

属性拥有内部属性,其中一个—— DontDelete 负责确定一个属性是否能够被删除。

全局代码或函数代码中的变量、函数声明都生成拥有 DontDelete 的属性。

函数参数同样是活化对象的属性,也拥有 DontDelete。

删除对象中的属性:delete 对象.成员

只能删除自有的成员

只有var声明的全局变量不让delete

使用window.或window[""]增加的全局成员可以delete

ps:Javascript中delete运算符

Delete是Javascript语言中使用频率较低的操作之一,但是有些时候,当我们需要做delete或者清空动作时,就需要delete操作。在这篇文章中,我们将深入探讨如何使用它,以及它是如何工作的。

删除的目的,如你所想,就是要删除某些东西,更具体的说,它会删除对象的属性,如下例:

delete运算符将不会删除普通变量,如下例:

但是,它可以删除“全局变量”,因为它们事实上是全局对象(浏览器中是window)对象的属性。

delete运算符也有一个返回值,如果删除一个属性成功了,返回true,如果不能删除属性,因为该属性是不可写,将返回false,或者如果在严格模式下会抛出一个错误。

你可能不知道在什么情况下使用删除运算符。答案是,只要你真的想从对象中删除一个属性。

有的时候,Javascript开发不是删除一个属性,而是把这个属性值设置为null.像下面这样:

虽然这有效地切断从原来的值的属性,但该属性本身仍然存在的对象上,你可以看到如下:

同时,像in和for in 循环运算将不会报告null属性的存在,如果你使用个对象,可能使用这些方法来检查一个对象,你可能想确保你真正删除任何不需要的属性。

最后,你应该记住,删除并没有破坏属性的值,仅仅属性本身,看下面的例子:

这里,name和benjamin.name映射到相同的值,真如你所看到的,删除benjamin.name并不会影响name.

以上,就是我对delete运算符的概述,不妥之处,欢迎大家批评指正。

浅谈JavaScript中的对象及Promise对象的实现 JavaScript中的所有事物都是对象:字符串、数值、数组、函数。下面小编给大家收集整理些javascript中的对象及promise对象的实现。具体内容如下:到处都

JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同 函数表达式和函数声明在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明确了一点:函

javascript入门教程基础篇 一、简介1、什么是javascriptJavaScript是网景(Netscape)公司开发的一种基于客户端浏览器、面向(基于)对象、事件驱动式的网页脚本语言。2、为什么要

标签: js的delegate

本文链接地址:https://www.jiuchutong.com/biancheng/384605.html 转载请保留说明!

上一篇:详解JavaScript函数对象(javascript函数的定义)

下一篇:浅谈JavaScript中的对象及Promise对象的实现(javascriptz)

  • 增值税进项发票当月未开,怎么办
  • 银行手续费回单可以作为入账依据吗
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 哪些收入应该纳入到个人所得税
  • 工厂宿舍的水电安装规范图
  • 财务费用中的汇兑收益增加的原因
  • 向保险公司缴纳的保险费可以税前扣除吗
  • 公墓增值税政策
  • 销项税额特殊销售额的处理方式
  • 法定预算调整的范围
  • 低值易耗品怎么报废
  • 事业编人员贷款
  • 外经证预缴税款怎么计算
  • 城镇土地使用税纳税义务发生时间
  • 购入但未开始使用的房产
  • 资本公积科目余额能出现小数吗
  • 买东西几块钱忘付了怎么办
  • 注销公司房产税从哪年从哪年开始交
  • 2017房地产行业流动比率均值
  • 小微企业享受优惠
  • 公司注销欠法人款怎么帐务处理?
  • 2021年购买车辆的进项税能抵扣吗
  • 增值税普通发票需要交税吗
  • 保险营销员的佣金收入怎么交个税
  • 中小企业的界定标准是什么
  • 标书费没有发票
  • 稽查补交的税款怎么处理
  • Linux系统中怎么开机自动运行拍摄文件
  • 工程暂估收入入账的会计分录
  • php curl命令详解
  • 交强险必须交车船税一年多少钱
  • 罗卡购物村
  • 雷瓦老板
  • vue初始化命令
  • uniapp简介
  • 机器学习期末复习题
  • 计算机视觉项目队友只让你打标签是什么意思
  • 公益组织可以开公司吗
  • 商户待清算账户是什么
  • 三十而已 1
  • 资产负债表中应交税费为负数是什么意思
  • strippped
  • 未发货先开票是否违法
  • 总承包可以转包吗
  • 银行每月贷款额度有多少
  • 在建工程待摊支出是什么意思
  • 工资总额范围怎么填写
  • 以前年度损益调整属于哪类科目
  • 进项税转出金额怎么算
  • 结转损益主营业务收入在借方
  • 零税率应税服务出口退税
  • 一般纳税人增值税申报表怎么填写
  • 跨年度收取的租金是什么
  • 在建工程什么意思
  • 建设期利息有哪些
  • 待抵扣进项税额什么意思
  • 收入 摊销
  • 公司固定资产报废申请范文
  • 业务招待费算期间费用吗
  • 个体工商户的纳税标准
  • 什么叫短期投资
  • 携税宝费用可以抵扣增值税吗
  • win10预览版和正式版区别
  • 服务器远程超出配置范围
  • vs2013运行
  • windows 托盘
  • windows 10的屏幕键盘快捷键在哪里
  • win8系统怎么样好用吗
  • win7怎么设置局域网共享文件和操作
  • win10系统关闭安全中心
  • window10光驱不能用了
  • 通过扣缴义务人申报和综合所得年度自行申报
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • content provider
  • linux怎么使用c语言
  • 有几种导航
  • 天津市车船税收费标准2023
  • 上海买房各种税
  • 内蒙古自治区市
  • 企业租入房子用交税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设