關於delete
關鍵字如何在JavaScript中工作,我有點困惑。刪除實例本身與創建它的構造函數的操作
我有一個Parent
和Person
的構造函數。我實例化了person1
並將其name
屬性設置爲person1.name = "newPerson"
。如果我運行以下代碼:
delete Person.name
它刪除屬性。但是,person1.name
仍然存在,console.log(person1.name)
返回"newPerson"
。相反,如果我
delete person1.name
從Parent
對象name
屬性,而不是所謂的和採取行動。
在第一種情況下,delete
不會從給定實例中刪除屬性,而會從Person
構造函數中刪除屬性。在第二種情況下,delete
將從Person
構造函數和從中創建的所有實例中刪除屬性。我知道delete
不會影響JavaScript中的變量,例如,person1
;雖然在這種情況下delete
功能如何?
function Person(){
this.name = "person";
}
function Parent(){
this.name = "parent";
}
Person.prototype = new Parent();
var person1 = new Person();
person1.name = "newPerson";
delete (Person.name);
console.log(person1.name);
'Person.name'與'Person.prototype.name'不一樣。 – Barmar 2014-09-04 00:36:57
你究竟在做什麼?你想刪除什麼? – jfriend00 2014-09-04 00:41:23
只是想看看刪除鍵如何影響函數構造函數和從它創建的實例 – 2014-09-04 01:10:27