#object #brackets
#объект #скобки
Вопрос:
Почему точечная нотация не удаляет ключ с помощью javascript, а скобочная нотация удаляет?
function removeProperty(obj, key) {
// your code here
delete obj.key;
}
var obj = {
name: 'Sam',
age: 20
}
console.log(obj.name);
removeProperty(obj, 'name');
console.log(obj.name); // --> undefined
Ответ №1:
Вопрос, честно говоря, немного неясен, но я постараюсь ответить на него, исходя из моего понимания
Чтобы удалить ключ из объекта, мы делаем что-то вроде этого
var obj = {
name: 'Sam',
age: 20
}
delete obj.name
console.log(obj) // won't have name
Теперь в вашей функции,
function removeProperty(obj, key) {
// your code here
delete obj.key;
}
Вы пытаетесь удалить свойство key
из obj, которое не существует.
Правильный способ был бы
function removeProperty(obj, key) {
// your code here
delete obj[key]
}
Итак, правильный способ удаления внутри функции в случае вашего фрагмента кода будет
function removeProperty(obj, key) {
// your code here
delete obj[key];
}
var obj = {
name: 'Sam',
age: 20
}
console.log(obj.name);
removeProperty(obj, 'name');
console.log(obj.name); // --> undefined