Inc*_*ito 6 javascript memory-management
我们在这里有一些问题以更抽象的方式讨论删除,但我正在寻找delete
可以使用何时使用的实际示例,而不是做一些事情,例如将属性设置为null或undefined.
遇到某种挑战的情况是什么,这delete
是最好的解决方案,与其他方面相比?
Object.defineProperty(Object.prototype, "Incognito", {
get: function() { return 42; },
set: function() { },
configurable: true
});
console.log(({}).Incognito); // 42
({}).Incognito = null;
console.log(({}).Incognito); // 42
// I DO NOT WANT INCOGNITO
delete Object.prototype.Incognito
console.log(({}).Incognito); // undefined
Run Code Online (Sandbox Code Playgroud)
如果您想删除任何具有空 setter 的属性(因为有人认为这是一个好主意),则需要将其删除。
var hash = {
"FALSE": undefined,
"TRUE": null
}
console.log("TRUE" in hash); // true
console.log("FALSE" in hash); // true
delete hash.FALSE;
console.log("FALSE" in hash); // false
Run Code Online (Sandbox Code Playgroud)
该in
运算符返回true
任何存在的属性,无论其值如何。如果您希望将其归还,false
您需要返回delete
该物业。
在这两种情况下,将其设置为null
或undefined
不执行任何操作(因为它要么有一个不执行任何操作的设置器,要么这就是运算符in
的工作方式)
归档时间: |
|
查看次数: |
187 次 |
最近记录: |