"这"在jquery函数.fn的return语句中?

时间:2016-01-04 17:31:28

标签: javascript jquery this

为什么回归"这"在这个函数中:

(function($) {

  $.fn.menumaker = function(options) {

      var cssmenu = $(this), settings = $.extend({
        title: "Menu",
        format: "dropdown",
        sticky: false
      }, options);

      return this.each(function() {

this是" DOM元素" ?如果我们想要使用该函数的内容,为什么不引用$(this)来使用我们定位的元素,而不是this

由于

1 个答案:

答案 0 :(得分:6)

jQuery方法($.fn的属性)与jQuery事件处理程序回调不同。 this的值是jQuery对象本身,而不是DOM元素。

$.fn对象是jQuery实例的原型对象,所以当你创建一个jQuery对象时

var jq = $(something);

然后调用jQuery方法:

jq.whatever();

JavaScript的自然this规则确定将使用jQuery对象作为whatever()的值调用this