gpt4 book ai didi

javascript - 查看对象引用的工具

转载 作者:行者123 更新时间:2023-11-30 12:20:02 26 4
gpt4 key购买 nike

有没有适用于 Node.js 或浏览器的工具,我可以通过它找出哪些对象持有对对象 X 的引用?

现在我正在使用 Backbone 进行前端开发,即使我删除了 View ,之后似乎仍然有对它们的引用。

我首先怀疑这种行为的原因是因为我在 Chrome 和 Mozilla 中使用插件/插件进行 Backbone 调试。

这确实让我怀疑这些程序本身是否就是持有对 Backbone 对象的引用的程序!

最佳答案

首先,遗憾的是没有办法做到这一点。您可以检查谁调用了一个函数和对象,但哪个特定变量作为引用。这不是因为 Backbone/Node.js,而是因为 Javascript 本身。当您替换对象/数组时,javascript 仅将目标内存地址传递给变量。

但我认为您遇到内存泄漏问题的原因很可能不是因为来自其他变量的引用,而是因为在 Backbone 使用中经常看到的事件处理程序(也称为“僵尸 View ”)

在 View 中设置事件处理程序后,您需要确保在实际删除 View 之前取消设置所有事件(.remove()),除非您仅使用 listenTo 用于 Backbone 事件,this.$el 用于 jQuery 事件。因为通过 listenTothis.$el 设置的事件会在您删除 View 时被 Backbone Core 自动删除。而由 Model.on 或全局 jQuery$ 设置的事件则不会如此。

因此,请检查您的整个代码是否使用 .on 或全局 jQuery 对象来设置事件,如果您有,请将它们替换为 listenTothis.$el.on 或在删除它们之前手动取消设置它们。

关于javascript - 查看对象引用的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31421116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com