匿名的自执行函数定义的方法怎么访问到

 我来答
c5...3@33sn.cc
2017-08-08 · 超过19用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:18万
展开全部

是的。这里的变量也包括函数。函数也是一种变量。匿名写法可以避免变量全局污染。
比如。在别人写过的一段js代码中你想在里面加一些自己的代码。最好的做法就是用匿名函数包裹。举个例子来看为什么。
比如,已经存在一段别人写的代码了,假设这段代码很长你不想看。

//别人的代码
....
....很多
//这里他定义了一个叫foo的函数
function foo{
 ... 一些函数逻辑
}



好,现在你自己想在同一个页面里面加一些自己的代码。假如你不知道别人已经定义了foo函数,你又额外在自己的函数里面定义一次
function foo{
 ..
}

把这段代码加在了页面的最后。这样你的函数定义就覆盖了 原来别人i写的函数定义。
恰巧,在某个事件里面,就使用foo函数。这个时候,原来的逻辑就不能正确执行了。


假如你的定义写在匿名函数里面, 那么这个定义就对外部不可见的,不会覆盖原来的。这样就避免了变量污染。 实际的应用,你就去参考 流行js库的源代码。通常都是如下写法
;(function(){
 var ....
 ....
})()

这样就会避免变量污染了。
注意,在开始的第一个字符 使用 分号,这是因为避免出现代码压缩时产生意外的错误。因为js可以省写分号。假设有段代码是
....
return result

然后又在js合并压缩时 合并成一个文件
...
return reslut;(function(){...})()



如果没有分号就会成这样
....
return reslut(function(){...})()

在代码进行压缩后result 变成了一个函数了,这明显是错误的。



因此在匿名函数的前面加个 分号 也是个良好的习惯

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式