@vita_yy

Почему так происходит?

Есть код:
$(function () {
    test={prop: 'sometext'};//Создаем объект со свойством prop
    test_link=test; //Создаем еще одну ссылку на этот объект
    delete test; //Удаляем
    alert(test_link.prop); //результат - sometext
});


Почему в итоге выводится значение "sometext", если объект test был удалён, и строке "test_link" ссылаться не к чему?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Оператор delete существует для удаления свойств объекта; ваш пример работает только потому что вы не используете ключевые слова (var, let) для объявления переменной test, и поэтому она становится свойством объекта window.

"delete удаляет переменную" - это конечно не правда, delete не удаляет переменные, разве что под переменными вы подразумеваете такие случаи: переменные объявленные без ключевых слов, то есть свойства window.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы