匿名的自执行函数定义的方法怎么访问到
1个回答
展开全部
是的。这里的变量也包括函数。函数也是一种变量。匿名写法可以避免变量全局污染。
比如。在别人写过的一段js代码中你想在里面加一些自己的代码。最好的做法就是用匿名函数包裹。举个例子来看为什么。
比如,已经存在一段别人写的代码了,假设这段代码很长你不想看。
//别人的代码
....
....很多
//这里他定义了一个叫foo的函数
function foo{
... 一些函数逻辑
}
好,现在你自己想在同一个页面里面加一些自己的代码。假如你不知道别人已经定义了foo函数,你又额外在自己的函数里面定义一次
function foo{
..
}
把这段代码加在了页面的最后。这样你的函数定义就覆盖了 原来别人i写的函数定义。
恰巧,在某个事件里面,就使用foo函数。这个时候,原来的逻辑就不能正确执行了。
假如你的定义写在匿名函数里面, 那么这个定义就对外部不可见的,不会覆盖原来的。这样就避免了变量污染。 实际的应用,你就去参考 流行js库的源代码。通常都是如下写法
;(function(){
var ....
....
})()
这样就会避免变量污染了。
注意,在开始的第一个字符 使用 分号,这是因为避免出现代码压缩时产生意外的错误。因为js可以省写分号。假设有段代码是
....
return result
然后又在js合并压缩时 合并成一个文件
...
return reslut;(function(){...})()
如果没有分号就会成这样
....
return reslut(function(){...})()
在代码进行压缩后result 变成了一个函数了,这明显是错误的。
因此在匿名函数的前面加个 分号 也是个良好的习惯
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询