delete删除的是构造函数中的属性,默认情况下不能删除原型对象中的属性,也不能删除Object.defineProperty这样设置的属性
function Foo() { }
Foo.prototype.num = 42;
var foo = new Foo();
delete foo.num;
console.log(foo.num);//42
delete Foo.prototype.num;
console.log(foo.num); //undefined
var obj = {
b: 20
};
Object.defineProperty(obj, "a", {
value: 10
})
console.log(obj);//{b: 20, a: 10}
delete obj.a
console.log(obj);//{b: 20, a: 10}