javascript - 定义变量时内存泄漏

标签 javascript

我想知道为什么 jsLint 提示我在定义这样的变量时可能会泄漏变量:

var foo = bar = {};

它说我可能正在泄漏 bar

我的直觉是因为 bar 是全局变量。那么,如何让 foobar 在一行中指向同一个对象呢? JavaScript 不允许我写:

var foo = var bar = {};

还是其他问题?

最佳答案

它提示“泄漏变量”的原因是因为您只声明了局部变量 foobar 没有被声明,它只是被赋值,所以这创建了一个全局变量。你的陈述等同于:

var foo = (bar = {});

这是以下内容的缩写:

bar = {};
var foo = bar;

这样写,您可以看到没有bar 变量的声明。如果要在单个 var 语句中声明多个变量,则必须用逗号分隔它们:

var bar = {}, foo = bar;

或者您可以将它们写成单独的语句:

var bar = {};
var foo = bar;

您还可以将声明和赋值分开:

var foo, bar;
foo = bar = {};

关于javascript - 定义变量时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959515/

相关文章:

javascript - 如何从图像中裁剪多项式形状

Javascript,访问其他窗口的变量

javascript - 从索引中查找表中具有属性的 tr

php - 使用backbone.js 与 php mvc 框架的优点

javascript - 无法通过 Parse Facebook 登录获取用户的电子邮件

javascript - DataLabels 格式化程序在 Highcharts Sankey 图中不起作用

javascript - Async.js 队列工作程序未完成

javascript - 如何在抓取 Google Play 评论时避免被封禁?

javascript - 调用通过 Javascript 加载另一个 HTML 的 Bootstrap Modal

javascript - 为什么要动态插入一个静态的JS?