javascript - Object.create() 混乱 - 你如何访问/销毁对象?
问题描述
如果我有以下代码:
const person = {
name: "Tom",
isHuman: true,
kill() {
// do stuff
}
};
Object.create(person);
我将如何访问该对象或删除/销毁它?我知道我可以做类似的事情:
const me = Object.create(person);
me.name = "Bob";
..但这不是我要找的。我不想分配它。
同样,我如何在kill()
不先分配方法的情况下访问该方法(例如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
推荐阅读
- javascript - 如何在 IOS PWA 上刷新页面
- java - Map 值在遍历 Map 时被覆盖
- ios - 命令 PhaseScriptExecution 以非零退出代码 iOS 失败
- javafx - 如何使用 javaFX 在 textarea 中设置下划线
- python - 在 pandas Dataframe 中处理字符串列的最有效方法
- node.js - 我安装了 express、mongoose 和 body-parser。但是当我尝试安装'ejs'时,下面的错误正在运行!。我该如何解决?
- javascript - 单击按钮后,网页会自行刷新。我怎么能避免呢?
- python - 我正在处理 django 中的 RSS 提要,但它给了我一个错误
- python-3.x - pyqt5获取数据库中组合框选定项的ID
- xml - 如何(正确)使用“mode="copy-no-namespaces"”?