Как удалить объект через функцию в JS? var person = {
'firstName': 'Alex',
'lastName': 'Medvedev',
'getFullName': function() {
return person.firstName + ' ' + this.lastName;
}
}
console.log(person);
// killer functions
var kill = function(obj) { // delete the object - does not work
delete obj;
}
var kill2 = function(obj) { // replace with an empty object - does not work
obj = {};
}
var kill3 = function(obj) { // manually delete each object property - works!
delete obj.firstName;
delete obj.lastName;
delete obj.getFullName;h
}
kill(person);
console.log(person);
kill2(person);
console.log(person);
kill3(person);
console.log(person);
Как видно, только вручную можно удалить каждое свойство объекта, но не обнулить весь объект разом. Цели у меня для этого нет, просто изучаю язык. Узнал, что можно вызывать функцию через другую функцию, но удивился, когда не смог обнулить объект.
Есть ли тут good practice решение?
PS: MDN читал:https://developer.mozilla.org/en-US/docs/Web/JavaS...

21 Авг 2019 в 07:05
188 +1
0
Ответы
1

Да, хорошей практикой в данном случае было бы использование метода Object.defineProperty() для перебора и удаления всех свойств объекта. Ниже приведен пример реализации функции, которая полностью очищает объект:

var clearObject = function(obj) {
Object.keys(obj).forEach(function(key) {
Object.defineProperty(obj, key, {
value: undefined,
configurable: true
});
});
};
clearObject(person);
console.log(person);

Этот метод перебирает все свойства объекта с помощью Object.keys(), затем устанавливает каждому свойству значение undefined и делает их конфигурируемыми. Таким образом, объект будет полностью обнулен.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 654 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир