问题描述
为什么点表示法不使用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
解决方法
坦率地说,这个问题尚不清楚,但我会根据我的理解尝试回答
要从对象中删除键,我们要做类似的事情
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;
}
您正试图从不存在的obj中删除属性key
。
应该是正确的方式
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