Javascript Object.create()混乱-如何访问/销毁对象?
如果我有以下代码:Javascript Object.create()混乱-如何访问/销毁对象?,javascript,object,Javascript,Object,如果我有以下代码: const person = { name: "Tom", isHuman: true, kill() { // do stuff } }; Object.create(person); 如何访问该对象或删除/销毁它?我知道我可以做如下事情: const me = Object.create(person); me.name = "Bob"; 但那不是我想要的。我不想分配它 同样,如果您: const person = {} 您正在创建对象(而
const person = {
name: "Tom",
isHuman: true,
kill() {
// do stuff
}
};
Object.create(person);
如何访问该对象或删除/销毁它?我知道我可以做如下事情:
const me = Object.create(person);
me.name = "Bob";
但那不是我想要的。我不想分配它
同样,如果您:
const person = {}
您正在创建对象(而不是类)person。因此,要访问方法kill,只需
person.kill();
但我认为您需要创建一个类,在这种情况下,您可以:
class Person {
name = "Tom";
isHuman = true;
kill(){
}
}
const me = new Person();
me.name = "Bob";
me.kill();
或者不使用类,您可以
const createPerson = () => ({
name: "Tom",
isHuman: true,
kill: () => {
//do stuff here
}
});
const me = createPerson();
me.name = "Bob";
me.kill();
您可以轻松删除创建的对象,而无需
var
let
或const
:
const person = {
name: "Tom",
isHuman: true,
};
me = Object.create(person);
delete me
// `me` is removed, and become not defined
// console.log(me) throws an error.
Javascript使用垃圾收集器,您可以使用它删除对象。对象或未引用的数据将被删除:
const person = {
name: "Tom",
isHuman: true,
};
let me = Object.create(person);
me = null
// { name: "Tom", ... } become unreachable, garbage remove it from the memory.
使用const
时,不能指定新值,也不能删除此值/对象/数据。但可以使用以下方法清除它:
const person = {
name: "Tom",
isHuman: true,
kill() {
delete this.name
delete this.isHuman
}
};
const me = Object.create(person);
console.log(person.name) // "Tom"
// delete me // delete nothing
// me = null // throws an error, because you can't assign new value to a const
person.kill()
console.log(person.name) // undefined
console.log(person.isHuman) // undefined