$ = jQuery ( 可以这么理解)
jQuery.fn($.fn) 是什么
jq里面源码:jQuery.fn = jQuery.prototype
//这是validform的v5.3.2的源码,用于给jq实例添加Validform方法
$.fn.Validform=function(settings){
return new Validform(this,settings);
};
$.extend
- 源码中 jQuery.extend = jQuery.fn.extend,其实是一样的
- 用于扩展对象(包含递归复制,深复制)
var ob1 = {
'name' : 'Jack' ,
'child' : {
'name' : 'Tom',
'age' : '7'
}
};
var ob2 = {
'name' : 'Rose' ,
'child' : {
'name' : 'Mike'
}
};
//target,[object1],[objectN] //潜复制
console.log($.extend({},ob1,ob2));//结果:{'name' : 'Jack' ,'child' : {'name' : 'Mike'}};
//请注意上面这边,这里age变化,因为是潜复制,所以把复制child对象整个复制过去,覆盖了ob1,整个child.
//深复制[deep],target,object1,[objectN], 且deep必须为true
console.log($.extend(true,{},ob1,ob2));//{'name' : 'Jack' , 'child' : {'name' : 'Mike', 'age' : '7'}};
- 用于为jQuery类添加类方法
$.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; },
add: function(a, b) { return a + b }
});
// 调用
$.min(2,3); // 2
$.max(4,5); // 5
$.add(5,5); // 10