jQuery技术

JavaScript及jQuery学习笔记(2)

字号+ 作者:H5之家 来源:H5之家 2016-09-16 17:01 我要评论( )

最后更新日:2014年11月17日 下面对整体外层的(function(window){})(window);进行改造。看下function(window){}中的window。jquery源码中写为:function(global,

最后更新日:2014年11月17日 下面对整体外层的(function(window){})(window);进行改造。看下function(window){}中的window。jquery源码中写为:function(global,factory){},我们打印出来可以看到global就是window对象,factory为undefined,因为我没有第二个参数(不明白我说的是什么意思?没关系,继续看下去就明白了。),如果你再给他加其它参数,往后打印出来的都是undefined。在jquery之前的版本写为: (function(window,undefined){}(window))。 <html> <head> <script> function test(){ $("#v").say(); }; (function (global,factory){ if ( typeof module ==="object"&& typeof module.exports ==="object") { module.exports = global.document ? factory( global, true ) : function( w ) { if ( !w.document ) { throw new Error("jQuery requires a window with a document"); } return factory( w ); }; } else { factory( global ); } })(typeof window!=="undefined"?window:this,function(window, noGlobal){ //这里照着jquery的源码,我把原来在上面的搬到下面了,是一样的 var test = (function(){ var t = function(id){ return new test.n.o(id); }; t.n = t.prototype = { o : function(id){ return { say : function(){ var change = document.getElementById(id.substring(1,id.length)); change.innerHTML ="我是未来"; change.style.width ="100%"; change.style.height ="100%"; change.style.fontSize ="100px"; change.style.backgroundColor ="yellow"; } }; } }; return t; }()); window.$ = window.jquery = test; }); </script> <style type="text/css"> div{ background-color:red; width:20%; height:20%; } </style> </head> <body> <divonclick="test()">请在此区域内点击我</div> </body> </html> 下面举个例子,说明下,为什么和之前的效果是一样的: <!DOCTYPE html> <html> <head> <script> (function (x,y){ console.log(x);//输出window对象 console.log(y);//输出 function(a,b){//TODO} })(window,function(a,b){ //TODO }); </script> </head> <body> </body> </html> 看到了吗?!x就对应着window,y就对应着闭包function(a,b){}。我要执行这个闭包不就只要y(a,b)就可以了吗!!!再看下面的示例: <!DOCTYPE html> <html> <head> <script> (function (x,y){ if(y!=undefined){ y(3,7); }else{ console.log("从这个示例来看,不会执行到我"); } })(window,function(a,b){ console.log(a+b); }); </script> </head> <body> </body> </html> OK!!!至此,以后我们只要把重点全部放在function(window, noGlobal){...}里面就可以了,你自己可以看看jquery的源码万把行都是写在这里面的。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Jquer学习之jQuery(function(){})与(function(){})(jQuery)之间

    Jquer学习之jQuery(function(){})与(function(){})(jQuery)之间

    2016-09-16 18:00

  • jQuery UI resizable使用注意事项、实时等比例拉伸及您不知道的

    jQuery UI resizable使用注意事项、实时等比例拉伸及您不知道的

    2016-09-15 17:00

  • 解析jQuery Mobile入门学习教程

    解析jQuery Mobile入门学习教程

    2016-09-15 13:00

  • jquery Select2 学习笔记之中文提示

    jquery Select2 学习笔记之中文提示

    2016-09-15 12:00

网友点评
v