猿问

javascript 匿名函数的用途到底是啥?

<script>

(function(){

var bp = document.createElement('script');

bp.src = '//push.zhanzhang.baidu.com/push.js';

var s = document.getElementsByTagName("script")[0];

s.parentNode.insertBefore(bp, s);

})();

</script> 
跟 下面的写法有什么不同么? 为什么非得要用(function(){ ... })() 这么奇怪的写法?这样写有什么好处?

<script> 

var bp = document.createElement('script'); 

bp.src = '//push.zhanzhang.baidu.com/push.js';

var s = document.getElementsByTagName("script")[0];

s.parentNode.insertBefore(bp, s);

</script>

杨魅力
浏览 1124回答 1
1回答

回首忆惘然

1 分析: 函数为何要有名字? 是为了方便下次使用.&nbsp;匿名函数, 即没有名字. &nbsp;2 用途: 通常不希望再次使用(即只使用一次的)的函数可以定义为匿名函数.&nbsp;3 使用示例:&nbsp;12345//&nbsp;定义并使用一个匿名函数来打印从1到10的整数(function&nbsp;(n)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;<=&nbsp;n;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(i);})(10);4 扩展: 当然, 如果还是想再次使用匿名函数的话, 也有方法. 即把匿名函数赋给一个变量(funtion类型的变量), 想再次使用时, 使用该变量来调用即可.示例如下:&nbsp;12345678//&nbsp;定义一个匿名函数并将它赋给变量printNvar&nbsp;printN&nbsp;=&nbsp;function&nbsp;(n)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;<=&nbsp;n;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(i);};&nbsp;//&nbsp;通过变量printN来再次使用该匿名函数printN(10);5 运行效果果图如下:图1图2
随时随地看视频慕课网APP
我要回答