2012-01-27 70 views
0

我有以下代码。在下面的代码中,有两个函数调用另一个函数。但是我不明白为什么一旦这个函数被调用,而另一次这个函数被另一个地方的变量调用。为什么要使用“this”来调用jquery中的函数

var widgetMethods = { 

    getWidgetData: function($widgetElement) { 

      var widgetData = $widgetElement.data('widgetData'); 

      widgetData = (typeof widgetData == 'undefined') ? { type: null, key: null } : widgetData; 

      if(widgetData.type == null) { 
      console.log("Widget type is not specified!"); 
      return false; 
      } 

      if(widgetData.key == null) { 
      console.log("Widget key is not specified!"); 
      return false; 

      } 
      return widgetData; 
     }, 

    editWidget: function(key, options) { 

      var $self = jQuery(this); 
      var widgetData = widgetMethods.getWidgetData($self); 
      } 

    getWidgetTemplate: function($widgetElement) { 

      var widgetData = this.getWidgetData($widgetElement); 
      } 


    } 

有人可以帮助我。我很困惑。请简要说明。

回答

0

这是指调用该函数的元素的当前指针。因此,您可以使用“this”传递当前元素。然而,当你调用一个不是由同一个元素引用的函数时,你需要传递相同的属性来使用它。

。如果你是疑惑地看着这个http://msdn.microsoft.com/en-us/library/y0dddwwd.aspx

:)

+0

但为什么我不能调用editWidget的getWidgetData此对象 – user1172928 2012-01-27 07:26:14

+0

不使用$自...使用VAR自我= $(这个) 然后, var widgetDataMethods.getWidgetData(self); – sree 2012-01-27 10:39:19

相关问题