jQuery 初始化的理解
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
}
上面代码需要搭配
jQuery.fn.init.prototype = jQuery.prototype;
这里等于是把jQuery的原型赋给了jQuery.fn.init这个初始化方法的原型,然后通过返回 new jQuery.fn.init()这个初始化方法,避免了手动执行初始化方法这一步。
这样放回的这个对象,就可以使用jQuery上面的方法和属性
---------------------------------------------------------------------------------分割线
jQuery.fn = jQuery.prototype = function(){
constructor:jQuery
}
上面为什么要添加这么一句话 constructor:jQuery 假设:
var A = function(){}
现在就回自动生成一个:A.prototype.constructor = A 1. A.prototype.name = 'zz'; 2. A.prototype = {
'name' : 'zz'
} 1的情况是往构造函数A的原型上添加一个name的属性 本身的A.prototype.constructor 是不会被修改的
2的情况是把一个对象{'name':'zz'}赋值给A.prototype 现在A的constructor就直接指向{}的构造函数Object了
到后面需要使用extend或者别的方式往jQuery的原型上挂载属性或方法的时候 constructor就不会指向到别的地方去了