尽管未删除对象引用,“删除此”仍返回true

时间:2019-08-01 21:06:57

标签: javascript

我刚刚在stackoverflow.com上打开了chrome开发工具,并在控制台中输入了以下内容

delete this;

尽管未删除引用,但返回了true。

如果未删除任何内容,为什么删除会返回true?

enter image description here

1 个答案:

答案 0 :(得分:0)

javascript中的Event.findOne({'_id':v.id}).deepPopulate('registration_REF.incentives_REF') 运算符与内存管理无关,您不能使用它来删除对象。

引用Mozilla delete page

  

与通常的信念不同,删除运算符与直接释放内存无关。

您只能使用delete运算符从对象中删除属性,例如:

delete

为什么let obj = {a: 1, b: 2}; console.log(delete obj.a); // true console.log(obj); // {b: 2}返回true

delete始终返回true,除非您尝试删除的属性是不可配置的并且您不在严格模式下(删除在严格模式下抛出)。这包括您使用无法在属性引用中解析的表达式调用delete的情况,例如deletethis等...

示例:

null