背景: 我对 C++ 有自学成才的爱好者级别的理解,这已经转化为对 javascript 的类似理解。为了更好地理解 javascript,我决定编写一个 Greasemonkey 脚本来解决 Google 如何处理来自同一域的多个结果的问题。
我写了我的剧本,而且非常简单。现在我觉得这个脚本可能对其他人有用,所以我想发布它。不过,在我这样做之前,我想确定我没有发布不负责任的代码。
我知道糟糕的垃圾收集经常被认为是扩展的问题,并且对我需要在 javascript 中做些什么来防止这种情况进行了一些研究。似乎答案是任何包含在函数中的内存都将在该函数退出时被回收。这似乎解释了为什么我查看的一些流行脚本被包装在一个原本无用的函数中。
这让我想到了这些问题:
- 我应该如何处理我的基本 javascript 函数以确保它不会泄漏内存?
这是我在许多脚本中看到的答案:
(function(){ //code goes here })();
在上面的代码中,第一个括号的用途是什么?这对我来说似乎是多余的。
当我试图理解该行时,我将其重写为:
(function main(){ //code goes here }) main();
这个想法是这只是调用以前未命名的函数。然而这并没有奏效,为什么呢?
我对一般答案更感兴趣,但如果需要,这里是我当前的代码: http: //pastebin.com/qQWKfnJT