我刚刚在stackoverflow.com上打开了chrome开发工具,并在控制台中输入了以下内容
delete this;
尽管未删除引用,但返回了true。
如果未删除任何内容,为什么删除会返回true?
答案 0 :(得分:0)
javascript中的Event.findOne({'_id':v.id}).deepPopulate('registration_REF.incentives_REF')
运算符与内存管理无关,您不能使用它来删除对象。
与通常的信念不同,删除运算符与直接释放内存无关。
您只能使用delete运算符从对象中删除属性,例如:
delete
let obj = {a: 1, b: 2};
console.log(delete obj.a); // true
console.log(obj); // {b: 2}
返回true delete
将始终返回true,除非您尝试删除的属性是不可配置的并且您不在严格模式下(删除在严格模式下抛出)。这包括您使用无法在属性引用中解析的表达式调用delete的情况,例如delete
或this
等...
示例:
null