JS中的delete

2023-11-15

delete 操作符用于删除对象的某个属性;如果没有指向这个属性的引用,那它最终会被释放。
语法:
delete expression
expression 的计算结果应该是某个属性的引用,例如:

delete object.property
delete object[‘property’]

js delete 用法(删除对象属性及变量)
1,对象属性删除
function fun(){

this.name = ‘mm’;

}

var obj = new fun();

console.log(obj.name);//mm

delete obj.name;

console.log(obj.name); //undefined

2,变量删除
var name = ‘lily’;
delete name;
console.log(name); //lily
直接用delelte删除不了变量

3,删除不了原型链中的变量
fun.prototype.age = 18;
delete obj.age;
console.log(obj.age) //18

delete删除的是构造函数中的属性,不能删除原型对象中的属性
function Foo(){}
Foo.prototype.bar = 42;
var foo = new Foo();
delete foo.bar;
alert(foo.bar); // 42
delete Foo.prototype.bar; // delete it from the prototype Object
alert(foo.bar); // undefined

=====================
JS中的delete操作符
首先,delete删除成功返回true,失败返回false。

js代码:
function wxCount (KaTeX parse error: Expected '}', got 'EOF' at end of input: … this.init(element);
}

wxCount.prototype = {
init : function(){…}, //初始化方法
count : function(){…}, //计算方法
destroy : function(){
delete this;
} //删除方法
}
仔细一看便知,这里的this指向的是function wxCount(),而在javascript中,delete是无法删除一般的变量或者function的,永远都会返回false。

example:

大多数情况下可以理解为:通过变量或者函数声明的属性不能删除。

1.全局属性可以删除
x = 150;
delete x; //return true

function f() {
obj = {
a : 2
}
}
delete obj; //return true
x可以理解为全局对象GLOBAL的一个属性,即GLOBAL.x,可以删除成功。函数中的obj也被置为全局属性,同理。

2.通过var或者function声明的属性不能删除
var x = 150;
delete x; //return fale
function y() {}
delete y; //return false
3.内置的属性不能删除
delete Math.PI //reuturn false
function (param) {
delete param; //return false
console.log(param); //1
}(1);
4.原型上的属性
function People(){}
People.prototype.age = 18;
var Perez = new People();
Perez.age = 100;
console.log(Perez.age); //100
delete Perez.age; //return ture
console.log(Perez.age); //18
//返回成功但是并没有什么用,Perez还是会继承原型上的age属性

delete People.prototype.age;
console.log(Perez.age); //undefined
5.删除数组中元素
var ipr = [“zhong”,“du”,“sun”,“an”,“yuan”];
delete ipr[4]; //return true
console.log(ipr); //[“zhong”,“du”,“sun”,“an”]
console.log(ipr.length); //5
console.log(4 in ipr); //false
console.log(ipr[4]); //undefined
删除数组中元素,数组长度不会发生变化,但是元素实际不存在数组中了。

var ipr = [“zhong”,“du”,“sun”,“an”,undefined];
console.log(4 in ipr); //ture
如果将最后个元素置为undefined,实际还是存在数组中。

关于delete更深的问题和兼容性问题,可以参考

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS中的delete 的相关文章

  • Angular - 如何从 DOM 中删除我使用过 $compile 的元素?

    我需要的是两个 ng views 的功能 因为我不能 我想更改某些内容的innerHTML 并编译它 我遇到的问题是 当我再次更改内容时 我可以编译 但是 Angular 是否会自行删除绑定 或者我必须手动执行此操作 如果是这样 怎么办 编
  • 暂停除了已激活的玩家之外的所有其他玩家。

    我有这个插件 它可以将不同的样式应用于 html5
  • ReferenceError:regeneratorRuntime未定义(但在范围内工作)

    我遇到过这种奇怪的情况 ReferenceError regeneratorRuntime is not defined 我已经设法在一个非常小的设置中重现 与同一问题上的类似问题相比 并且还注意到一些奇怪的行为 具体取决于是否使用范围 以
  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • 是否存在 IsCallable 为 false 但 IsConstructor 为 true 的 JS 对象?

    ECMAScript 规范函数可调用 https www ecma international org ecma 262 6 0 index html sec iscallable当且仅当其参数具有 Call 内部方法时返回 true 它在
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • window.location 和 location.href 之间的区别

    我对之间的区别感到困惑window location and location href 两者似乎都以相同的方式行事 有什么不同 window location是一个对象 它保存有关当前文档位置的所有信息 主机 href 端口 协议等 lo
  • 为什么我们在打字稿中使用 HTMLInputElement ?

    我们为什么使用 document getElementById ipv as HTMLInputElement value 代替 document getElementById ipv value 功能getElementById返回具有类
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz

随机推荐

  • mysql 字段类型 负数_MySQL字段类型详解

    MySQL支持大量的列类型 它可以被分为3类 数字类型 日期和时间类型以及字符串 字符 类型 本节首先给出可用类型的一个概述 并且总结每个列类型的存储需求 然后提供每个类中的类型性质的更详细的描述 概述有意简化 更详细的说明应该考虑到有关特
  • UNIX环境高级编程 学习笔记 第四章 文件和目录

    4个stat函数 stat函数返回名为参数pathname的文件有关的信息结构 fstat函数获得已经在描述符fd上打开的文件的信息 lstat函数的参数pathname如果是一个符号链接文件 它返回符号链接的有关信息 而非该符号链接引用的
  • 解除BitLocker加密

    问题描述 硬盘设置BitLocker加密后 系统异常时必须输入BitLocker恢复密钥 才能使用windows高级功能进行修复 启用BitLocker硬盘加密后一定要保存好BitLocker密钥 加密状态下windows密码无法强制破解
  • Xilinx ISE 14.7 设置编辑器字体大小

    左上角 edit preference
  • 2013年5月23日(7-9ddraw裁剪器)

    进行裁剪步骤有4个 1 创建ddraw裁减器对象 CreateClipper 0 LPDIRECTDRAWCLIPPER NULL 2 创建裁剪队列 即RECT结构的矩形列表 blitter硬件只绘制裁剪区内的内容 其余的都剪掉 裁剪队列需
  • MATLAB对原始光斑进行运算

    clc clear all close all I imread ban jpg figure 1 subplot 1 3 1 imshow I 显示原始光斑 title 原始光斑 I1 imadjust I 0 2 0 6 subplot
  • liunx,centos7 下安装部署 Jenkins 持续集成工具,war包方式安装Jenkins

    Jenkins是一个开源软件项目 是基于Java开发的一种持续集成工具 用于监控持续重复的工作 旨在提供一个开放易用的软件平台 使软件的持续集成变成可能 下载地址 https bitnami com stack jenkins instal
  • QT:通过按钮调用qpaintEvent事件实现自定义绘图

    摘要 最近碰到了一个需要在qt中完成二维图像变换的作业 想到刚接触qt时学过qpainter来进行绘画操作 立马就着手码起来 作为一个小白 马上就发现了相应的问题 由于qt内部机制 绘画事件 paintEvent 仅允许在绘画事件下进行 比
  • 数据挖掘实战(以kaggle为例)

    第一课 第1课 机器学习算法 工具与流程概述 主要分为以下内容进行讲述 机器学习工业应用领域 机器学习常用算法 机器学习常用工具 解决问题流程 数据的处理比模型更为重要 老师的博客 内容很详细 数据预处理 有时候可以一个feature一个f
  • PCL中点云分割算法简析

    文章目录 前言 一 点云分割算法简介 1 1 基于RANSAC的点云分割 1 2 基于聚类的点云分割 1 2 1 欧式聚类分割 1 3 基于深度学习的点云分割 二 算法示例 2 1 基于RANSAC的平面分割 2 2 欧式聚类 2 3 基于
  • Linux 开源的高性能稳定服务器操作系统入门

    我们研发项目 写代码时 使用的一般都是windows或者是MAC的操作系统 作为本地的用户使用系统 而Linux一般都是放在服务器上运行的一种高效稳定的服务器系统 我们还是无法完全避免对于Linux的接触和使用 尤其是在一些中小型企业 一个
  • 设计模式:(三)原型、建造者、适配器、桥接模式

    一 原型模式 Prototype 1 概述 1 定义 用原型实例指定了要创建对象的种类 并且通过拷贝这些原型 创建新的对象 原型模式是一种创建型设计模式 允许一个对象再创建另外一个可定制的对象 无需知道如何创建的细节 2 工作原理 通过将一
  • c++ 14.0下载地址

    http go microsoft com fwlink LinkId 691126 fixForIE exe 转载于 https www cnblogs com louzi p 10552573 html
  • Loadrunner 第一个场景设计Controller

    参考书籍 软件测试 黑马程序员编著 场景设置 2 场景编辑 选中一行 点击编辑操作 3 场景执行 运行后报错Loadrunner无法创建vuser 参考文章解决 参考文章 loadrunner controller无法创建vuser 信而为
  • STM32关于USB控制端点4的问题

    解释如下 define BTABLE ADDRESS 0x00 说明端点描述符表从0x00开始 每个端点描述符会占用4个uint32 t型 即16个字节 如果使用到端点4 需要将 define ENDP0 RXADDR 0x18 defin
  • 数据库系统原理练习题(十二)

    1 要建立一个约束 保证用户表 user 中年龄 age 必须在16岁以上 下面语句正确的是 A alter table user add constraint df age DEFAULT 16 B alter table user ad
  • 外卖点餐系统

    傻瓜式外卖点餐系统 无数据库 tips 菜品类 菜品id 菜品名 菜品类型 上架时间 单价 月销售 总数量 管理员类 管理员id 账号 密码 客户类 客户id 客户名 性别 密码 送餐地址 手机号 创建时间 订单类 订单号 订单创建时间 菜
  • DNS域名服务器详解

    一 DNS DNS Domain Name System 是域名系统的英文缩写 是一种组织成域层次结构的计算机和网络服务命名系统 用于 TCP IP 网络 二 域名系统DNS的作用 通常我们有两种方式识别主机 通过主机名或者 IP 地址 人
  • Java 内存区域和GC机制

    Java垃圾回收概况 Java GC Garbage Collection 垃圾收集 垃圾回收 机制 是Java与C C的主要区别之一 作为Java开发者 一般不需要专门编写内存回收和垃圾清理代码 对内存泄露和溢出的问题 也不需要像C程序员
  • JS中的delete

    delete 操作符用于删除对象的某个属性 如果没有指向这个属性的引用 那它最终会被释放 语法 delete expression expression 的计算结果应该是某个属性的引用 例如 delete object property d