jQuery框架封装
沙箱模式
沙箱其实就是一个独立的环境,这个环境中任何的改变,都不会对外部环境产生影响。
函数自调用一样,在自调用函数内部的变量是不会影响到外部的,因此函数自调用模式也叫沙箱模式。
1 2 3
| (function(window){ })(window);
|
jq的基本架构
1 2 3 4 5 6 7 8
| (function(window){ var jQuery = function(){ } window.jQuery = window.$ = jQuery; })(window);
|
jq的选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| (function(window){ var jQuery = function(selector){ var ele = document.querySelectorAll(selector); for(var i = 0; i < ele.length; i++){ this[i] = ele[i]; } this.length = ele.length; } window.jQuery = window.$ = jQuery; })(window);
|
原型添加方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| (function(window){ var jQuery = function(selector){ } jQuery.prototype = { constructor: jQuery, css: function(){ }, html: function(){ }, }; window.jQuery = window.$ = jQuery; })(window);
|
省去new的操作
使用工厂函数来省去new可以得到实例对象,方便得到实例对象,不用自己手动new
改变构造函数init的原型
得到的实例对象访问不到jq原型中的成员,改变init构造函数的原型,使其init的实例对象可以访问的到jq原型中的成员。