Повторно внедрить ключевое слово удаления JavaScript - PullRequest
1 голос
/ 07 июля 2011

Как многие из вас знают, ключевое слово delete для javascript немного сложно использовать (см. здесь ). Можно ли повторно внедрить или изменить его? Я ссылаюсь на объект несколько раз, и я хочу удалить, чтобы сначала удалить все ссылки. Вот так:

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

Я не ожидаю, что сборщик мусора найдет все ссылки, скажем, я знаю, где эти ссылки, я просто хочу повторно реализовать удаление, чтобы также избавиться от соков, напитков и allRightSunnyD. Я понимаю, что могу просто реализовать функцию OrangeJuice.delete(), но я хотел знать, есть ли способ сделать это правильно. Например, если javascript вызовет функцию обратного вызова onDelete() перед удалением объектов.

1 Ответ

7 голосов
/ 07 июля 2011
  1. delete является ключевым словом, поэтому его не следует изменять, даже если вы можете
  2. delete для удаления свойств объектов, поэтому вы не можете удалять объекты, содержащиеся в одной переменной

посмотрите, как объясняется сборка мусора в Javascript: Как работает сборка мусора в JavaScript?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...