jQuery中的 $.extend 和 $.fn.extend 的区别

$.extend 是拓展 jQuery 类的方法

// 类似于:

var $ = { }

// 经过下面这个过程之后:

$.extend({
  add: ( a, b ) => a + b
})

// $ 对象变成:

$ = {
  add: ( a, b ) => a + b
}

// 即可像这样调用 $.add( 4, 5 )  输出 9   这个add是一个静态方法

$.fn.extend 是拓展jQuery对象的方法

所谓jQuery对象,也就是类似$('#id')返回的对象,你可以这样用: $('#id').removeClass('class')

$.fn.extend({
  val: function() { return this.value }
})

// 之后你就可以用 $('#id').val() 获取元素的 value了

因为 jQuery.fn = jQuery.prototype
拓展 jQuery.fn 实际上就是拓展 jQuery.prototype
上面的做法实际就是:
jQuery.prototype.val = function() { return this.value }
那么在使用 $('#id') 之后会返回一个实例化的 jQuery对象,这个对象就共享了 jQuery原型 上的方法

你可能感兴趣的:(jQuery中的 $.extend 和 $.fn.extend 的区别)