重新实现javascript删除关键字

puk*_*puk 1 javascript extend

很多人都知道,javascript delete关键字使用起来有点棘手(见这里).是否可以重新实施或修改它?我有一个多次引用的对象,我想删除首先删除所有引用.像这样:

var oj = new OrangeJuice();
var juice = oj;
var beverage = oj;
var allRightSunnyD = oj;
delete oj; //I want this to delete the actual object
Run Code Online (Sandbox Code Playgroud)

我不希望垃圾收集器找到所有的引用,让我说我知道引用的位置,我只想重新实现删除也去掉果汁,饮料和allRightSunnyD.我意识到我可以实现一个OrangeJuice.delete()功能,但我想知道是否有办法正确实现.就像javascript onDelete()在删除对象之前调用回调函数一样.

Ale*_*lex 7

  1. delete是一个关键字,所以即使你可以也不应该改变它
  2. delete用于删除对象的属性,因此您无法删除单个变量中包含的对象

看看这里如何解释Javascript 中的垃圾收集:垃圾收集如何在JavaScript中工作?