我看到 jquery.cookie 中有一段 这个代码

kis龍 2017-04-14 11:30:21
(function (factory) {
console.log(22,factory)
}(function ($) {
console.log(11, $)
}));


为什么 输出 22
11 就不输出呢
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kis龍 2017-04-14
  • 打赏
  • 举报
回复
引用 1 楼 zzgzzg00 的回复:
(function(factory){ console.log(22); factory(); }(function(){ console.log(11) })) 11是参数

(function(factory){
            console.log(22);
            factory();
        }(function(){
            console.log(11)
        }))

(function(win){
console.log(win)
})(window);

这两个 有什么区别 吗??
似梦飞花 2017-04-14
  • 打赏
  • 举报
回复
(function(factory){
console.log(22);
factory();
}(function(){
console.log(11)
})) 11是参数
dreamerjdw 2017-04-14
  • 打赏
  • 举报
回复
(function (factory) {
   console.log(22,factory)
}(function ($) {
  console.log(11, $)
}));
输出: 22 function ($) { console.log(11, $) } 解析: (function (factory) { console.log(22,factory) }(function ($) { console.log(11, $) })); 相当于

var a = function(factory) {
     console.log(22, factory)
};
var b = function ($) {
  console.log(11, $);
}
a(b);
b函数作为参数转入a函数 a函数内只是引入了b变量,并未执行,因此输出为:22 b函数表达式 如果要执行b,需要改写a函数内部: var a = function(factory) { console.log(22); factory(); };
打老虎zz 2017-04-14
  • 打赏
  • 举报
回复
引用 2 楼 p270228163 的回复:
[quote=引用 1 楼 zzgzzg00 的回复:] (function(factory){ console.log(22); factory(); }(function(){ console.log(11) })) 11是参数

(function(factory){
            console.log(22);
            factory();
        }(function(){
            console.log(11)
        }))

(function(win){
console.log(win)
})(window);

这两个 有什么区别 吗?? [/quote]没有区别 就是写法不一样

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧