delete从某个对象中删除属性。
function Man() {
this.eye = 2;
this.mouth = 1;
}
Man.prototype.walk = function (arguments) {
console.log("Im walking.");
}
var man1 = new Man();
var man2 = new Man();
delete man1.constructor;
console.log(man1.constructor); // function Man()
在那里,当然,通过委托,我正在删除man1
原型的属性,即constructor
属性。好吧,至少这是我的意图。但是当我登录时,我仍然得到构造函数。
然而,这个问题是固定的,当
delete man1.constructor.prototype.constructor;
console.log(man1.constructor); // function Object()
现在我得到的是空对象。正如我应该的那样。
我的问题是:为什么第二个解决方案有效而第一个无效?是因为委托吗?我听说有效的delete man1.constructor.prototype.constructor;
方法使用“隐式”引用。这意味着什么?还有一件事。为什么我仍然变得空虚Object
并且没有可用内存?