浏览器/ajax/javascript是否可以自动完成,并关闭自加载闭包(如果它们保持打开状态..)?
1 (function()
2 {
3 function a(n){this.name=n;}
4 var a=this;
5 //more code in here
6 alert(a);
7 //})();
- The terminating brace and parens were not present in the script i saw
- Is it possible that it must be generated dynamically, so that the .js file
- does not contain it but the script/ajax later appends it ..?
- Can the browser complete it..?
最佳答案
为什么不运行一些简单的测试呢?
使用一些像这样的文件:
<script>
(function a () {
alert('a');
</script>
<script>
$(function() { alert('b'); a(); });
</script>
这将告诉您以下场景:
alerts ('a'),alerts('b'),alerts('a') ==>(不太可能):浏览器完成函数定义并编写闭包执行括号
alerts('b'),alerts('a') ==> 浏览器完成函数定义并且调用按预期进行
alerts('b'),未定义的 a() 引发错误 ==> 浏览器忽略不完整的函数定义
什么都不做==>浏览器在找不到右大括号后退出解析
我认为浏览器不太可能添加闭包的执行部分,但不太可能添加缺少的结尾}。尽管这绝对不是您想要依赖的行为,并且应该始终很好地形成您的脚本文件。
关于javascript - 不完整的可执行自加载闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566890/