背景: 我有一个自学成才的爱好者对C++的理解水平,已经转化为对javascript的类似理解.为了更好地理解javascript,我决定编写一个Greasemonkey脚本来解决Google如何处理来自同一域的多个结果的问题.
我写了我的剧本,这简直太容易了.现在我觉得这个脚本对其他人有用,所以我想发布它.在我这样做之前,我想确定我不会发布不负责任的代码.
我知道糟糕的垃圾收集通常被认为是扩展的问题,并做了一些研究,我需要在javascript中做什么来防止这种情况.似乎答案是当函数退出时,函数中包含的任何内存都将被回收.这似乎解释了为什么我看到的一些流行脚本被包含在一个无用的功能中.
这引出了我这些问题:
这是我在许多脚本中看到的答案:
(function(){
//code goes here
})();
Run Code Online (Sandbox Code Playgroud)在上面的代码中,第一个括号的目的是什么?这对我来说似乎是多余的.
当我试图理解这一行时,我把它重写为:
(function main(){
//code goes here
})
main();
Run Code Online (Sandbox Code Playgroud)这个想法是,这只是调用以前未命名的功能.这不起作用,为什么?
我对一般答案更感兴趣,但如果需要这里是我目前的代码:http: //pastebin.com/qQWKfnJT