首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数模块模式( JavaScript (){})();vs block语句

函数模块模式( JavaScript (){})();vs block语句
EN

Stack Overflow用户
提问于 2013-05-31 11:32:42
回答 5查看 885关注 0票数 2

我之前看到了使用我的"Weird"示例的一些问题的答案,我想知道这两种方法是否都有任何好处。

一些HTML:

代码语言:javascript
运行
复制
<span id="them">Hey</span>
<span id="me">Hey</span>

它们之间的区别是什么:

代码语言:javascript
运行
复制
(function()//doing this
{
    them.innerHTML = "Weird<br>";
})();

me.innerHTML = "Not so weird<br>";//and doing this

甚至,当人们可以将脚本放在正文的底部时,为什么还要使用window.onload?或者这只是个人喜好的问题?

EN

Stack Overflow用户

发布于 2013-05-31 12:03:56

经过深思熟虑后,编写如下所示的额外(function(){})();是有好处的(想象一下代码非常庞大):

代码语言:javascript
运行
复制
(function()
{
    var text = "Span 'them' text!";
    them.innerHTML = text;
    //Many lines of code
})();

(function()
{
    me.innerHTML = text;//will throw 'text is undefined'
    //Many lines of code
})();

这对于调试多行代码将非常方便,调试器将识别错误并直接“指向”它。

而在这个例子中:

代码语言:javascript
运行
复制
var text = "Span 'them' text!";
them.innerHTML = text;
//Many lines of code
//...
me.innerHTML = text;

你的“错误”(调试器对此非常满意)将很难追踪到。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16849330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档