当应用第一种方法,可以确保你须要的 undefined 确切就是 undefined。
别的不得不提出的是,jQuery 在这里有一个针对紧缩优化细节,应用第一种方法,在代码紧缩的时刻,window 和 undefined 都可以紧缩为 1 个字母并且确保它们就是 window 和 undefined.
- // 紧缩策略
- // w -> windwow , u -> undefined
- (function(w, u) {
- })(window);
jQuery 无 new 构造
嘿,回想一下应用 jQuery 的时刻,实例化一个 jQuery 对象的办法:
大年夜部分人应用 jQuery 的时刻都是应用第一种无 new 的构造方法,直接 $('') 进行构造,这也是 jQuery 十分便捷的一个处所。当我们应用第一种无 new 构造方法的时刻,其本质就是相当于 new jQuery(),那么在 jQuery 内部是若何实现的呢?看看:
- (function(window, undefined) {
- var
- // ...
- jQuery = function(selector, context) {
- // The jQuery object is actually just the init constructor 'enhanced'
- // 看这里,实例化办法 jQuery() 实际上是调用了其拓展的原型办法 jQuery.fn.init
- return new jQuery.fn.init(selector, context, rootjQuery);
- },
- // jQuery.prototype 等于 jQuery 的原型,挂载在膳绫擎的办法,即可让所有生成的 jQuery 对象应用
- jQuery.fn = jQuery.prototype = {
- // 实例化化办法,这个办法可以称作 jQuery 对象构造器
- init: function(selector, context, rootjQuery) {
- // ...
- }
- }
- // 这一句很关键,也很绕
- // jQuery 没有应用 new 运算符将 jQuery 实例化,而是直接调用其函数
- // 要实现如许,那么 jQuery 就要算作一个类,且返回一个精确的实例
- // 且实例还要能精确拜访 jQuery 类原型上的属腥吒踌法
- // jQuery 的方法是经由过程原型传递解决问题,把 jQuery 的原型传递给jQuery.prototype.init.prototype
- // 所以经由过程这个办法生成的实例 this 所指向的仍然是 jQuery.fn,所以能精确拜访 jQuery 类原型上的属腥吒踌法
- jQuery.fn.init.prototype = jQuery.fn;
推荐阅读
深度学习训练时 GPU 温度过高?输入这几行命令就能迅速降温
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 新买回来的不带水冷公版GPU,在满负载运行的时刻,温度大年夜室温立时飙升到85度,并且模型练习不是几分钟>>>详细阅读
地址:http://www.17bianji.com/lsqh/36245.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示