Задать вопрос
@vita_yy

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

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


Почему в итоге выводится значение "sometext", если объект test был удалён, и строке "test_link" ссылаться не к чему?
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Оператор delete существует для удаления свойств объекта; ваш пример работает только потому что вы не используете ключевые слова (var, let) для объявления переменной test, и поэтому она становится свойством объекта window.

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

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

Похожие вопросы