数码资讯
Javascript中的匿名函数和封装
在封装了不同的js库之后,我们终于得到了一点线程: 复制代码代码如下所示: 创建一个自调用匿名函数,设计参数窗口,并将其传递到窗口对象中。 这个过程的目的是, 复制代码代码如下所示: 代码不会受到其他代码的污染,也不会污染其他代码。 jQuery封装 因此,jQuery的一个早期版本被发现,和版本号
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
在封装了不同的js库之后,我们终于得到了一点线程:
复制代码代码如下所示:
创建一个自调用匿名函数,设计参数窗口,并将其传递到窗口对象中。
这个过程的目的是,
复制代码代码如下所示:
代码不会受到其他代码的污染,也不会污染其他代码。
jQuery封装
因此,jQuery的一个早期版本被发现,和版本号是包代码1.7.1,大致如下
复制代码代码如下所示:
函数(窗口,未定义){
var jQuery =(函数(){ console.log(你好);});
window.jquery =美元= jQuery的窗口;
如果(typeof定义为功能define.amd定义。AMD。jQuery){
定义()
}
}(窗口);
其中
复制代码代码如下所示:
console.log(你好);
它是用来验证工作是否在一开始就完成的,所以我们可以在窗口中调用jQuery。
复制代码代码如下所示:
美元的窗口。
或是它
复制代码代码如下所示:
window.jquery
所以我们可以创建一个类似的包
复制代码代码如下所示:
函数(窗口,未定义){
函数(){()
}
}(窗口)
只比它少了两倍。
1。定义jQuery的符号和全局调用
2。异步支持
所以找到了一个更早期的jQuery包,方法大致相同,除了。
复制代码代码如下所示:
如果(typeof window.jquery = = undefined){
Var(jQuery =函数){ };
如果美元(typeof!=未定义
jQuery _ =美元美元;
var;
};
它是如此惊人,我们没有办法重写前面的jQuery的。所以我们要看到最新的jQuery包装是什么。所以我打开2.1.1和发现,除了很多功能,基本思想仍然是相同的。
复制代码代码如下所示:
(函数,全局,工厂){
如果(typeof模块=对象类型的module.exports =对象){
module.exports = global.document
工厂(全球,真实):
函数(w){
如果(!w.document){
抛出新错误(jQuery需要一个带有文档的窗口);
}
返回工厂(W);
};
{人}
工厂(全球);
}
}(typeof = =未定义窗口!窗口:这个功能(窗口,noglobal){
函数(){()
console.log('jquery);
};
如果(typeof定义为功能的定义。AMD){
定义()
返回jQuery;
});
};
strundefined =类型定义;
如果(typeof noglobal = strundefined){
window.jquery =美元= jQuery的窗口;
};
返回jQuery;
});
在使用浏览器的情况下
复制代码代码如下所示:
类模块=未定义
所以,上述情况是基于Node.js的使用等等,这也表明jQuery变得臃肿。
骨干封装
打开主干看看
复制代码代码如下所示:
(函数,根,工厂){
如果(typeof定义= 'function'define。AMD){
定义({ 'underscore ','jquery ','exports},功能(_,出口美元){
根。骨干=厂(根、出口,_,$);
});
如果(typeof出口其他}!= = 'undefined){
无功_ =需要('underscore);
厂(根、出口,_);
{人}
根。骨干=厂(根、根。_,{ }(root.jquery根。Zepto root.ender根。|美元| | | | |));
}
}(这个功能(根、骨干,_,{ $)
主干。$ = $;
返回骨干;
});
除了异步支持之外,它还体现了对jQuery和下划线的依赖性。
复制代码代码如下所示:
定义({ 'underscore ','jquery ','exports},功能(_,出口美元){
根。骨干=厂(根、出口,_,$);
});
这表明,骨干是requirejs原生支持。
强调封装
所以,看着下划线,发现图书馆占据了_符号
复制代码代码如下所示:
(函数(){())
var =;
var =功能(obj){ _
如果(obj instanceof _)返回的对象;
如果(!(这是_))返回(obj)_;
这_wrapped =目标;
};
如果(typeof出口!= 'undefined){
如果(typeof模块!= = 'undefined'module。出口){
module.exports _出口= =;
}
_ = _出口;
{人}
_ = _根;
}
如果(typeof定义= 'function'define。AMD){
定义('underscore功能({ }){。
返回_;
});
}
}调用(这个);
一般来说,它们几乎都是匿名函数,除了最后一个是调用()方法。
复制代码代码如下所示:
创建一个自调用匿名函数,设计参数窗口,并将其传递到窗口对象中。
这个过程的目的是,
复制代码代码如下所示:
代码不会受到其他代码的污染,也不会污染其他代码。
jQuery封装
因此,jQuery的一个早期版本被发现,和版本号是包代码1.7.1,大致如下
复制代码代码如下所示:
函数(窗口,未定义){
var jQuery =(函数(){ console.log(你好);});
window.jquery =美元= jQuery的窗口;
如果(typeof定义为功能define.amd定义。AMD。jQuery){
定义()
}
}(窗口);
其中
复制代码代码如下所示:
console.log(你好);
它是用来验证工作是否在一开始就完成的,所以我们可以在窗口中调用jQuery。
复制代码代码如下所示:
美元的窗口。
或是它
复制代码代码如下所示:
window.jquery
所以我们可以创建一个类似的包
复制代码代码如下所示:
函数(窗口,未定义){
函数(){()
}
}(窗口)
只比它少了两倍。
1。定义jQuery的符号和全局调用
2。异步支持
所以找到了一个更早期的jQuery包,方法大致相同,除了。
复制代码代码如下所示:
如果(typeof window.jquery = = undefined){
Var(jQuery =函数){ };
如果美元(typeof!=未定义
jQuery _ =美元美元;
var;
};
它是如此惊人,我们没有办法重写前面的jQuery的。所以我们要看到最新的jQuery包装是什么。所以我打开2.1.1和发现,除了很多功能,基本思想仍然是相同的。
复制代码代码如下所示:
(函数,全局,工厂){
如果(typeof模块=对象类型的module.exports =对象){
module.exports = global.document
工厂(全球,真实):
函数(w){
如果(!w.document){
抛出新错误(jQuery需要一个带有文档的窗口);
}
返回工厂(W);
};
{人}
工厂(全球);
}
}(typeof = =未定义窗口!窗口:这个功能(窗口,noglobal){
函数(){()
console.log('jquery);
};
如果(typeof定义为功能的定义。AMD){
定义()
返回jQuery;
});
};
strundefined =类型定义;
如果(typeof noglobal = strundefined){
window.jquery =美元= jQuery的窗口;
};
返回jQuery;
});
在使用浏览器的情况下
复制代码代码如下所示:
类模块=未定义
所以,上述情况是基于Node.js的使用等等,这也表明jQuery变得臃肿。
骨干封装
打开主干看看
复制代码代码如下所示:
(函数,根,工厂){
如果(typeof定义= 'function'define。AMD){
定义({ 'underscore ','jquery ','exports},功能(_,出口美元){
根。骨干=厂(根、出口,_,$);
});
如果(typeof出口其他}!= = 'undefined){
无功_ =需要('underscore);
厂(根、出口,_);
{人}
根。骨干=厂(根、根。_,{ }(root.jquery根。Zepto root.ender根。|美元| | | | |));
}
}(这个功能(根、骨干,_,{ $)
主干。$ = $;
返回骨干;
});
除了异步支持之外,它还体现了对jQuery和下划线的依赖性。
复制代码代码如下所示:
定义({ 'underscore ','jquery ','exports},功能(_,出口美元){
根。骨干=厂(根、出口,_,$);
});
这表明,骨干是requirejs原生支持。
强调封装
所以,看着下划线,发现图书馆占据了_符号
复制代码代码如下所示:
(函数(){())
var =;
var =功能(obj){ _
如果(obj instanceof _)返回的对象;
如果(!(这是_))返回(obj)_;
这_wrapped =目标;
};
如果(typeof出口!= 'undefined){
如果(typeof模块!= = 'undefined'module。出口){
module.exports _出口= =;
}
_ = _出口;
{人}
_ = _根;
}
如果(typeof定义= 'function'define。AMD){
定义('underscore功能({ }){。
返回_;
});
}
}调用(这个);
一般来说,它们几乎都是匿名函数,除了最后一个是调用()方法。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。