var test = {abc: 1};
function deleteNode(_node) {
console.log(delete _node);
}
deleteNode(test.abc);
Когда вы вызывали deleteNode выше, test.abc
уже был преобразован в 1
перед передачей в функцию.deleteNode
технически вызывает delete 1
.И согласно стандарту ES удаление аргумента функции напрямую приводит к false
или к ошибке в режиме строгий .
"use strict";
var test = {a: 1};
function del(a) {
console.log(delete a);
}
del(test.a);
Вам нужно будет передать объект и ключ в качестве различных аргументов методу.
var test = {abc: {a: 1, b: 2, c: {d: 1}}};
function deleteNode(obj, key) {
console.log(eval('delete obj.' +key));
}
deleteNode(test, 'abc.c.d');
console.log('test is', test)