2012-01-27 15 views
0

次のコードがあります。以下のコードでは、別の関数を呼び出す2つの関数があります。しかし、なぜ私はこの関数を呼び出すと、同じ関数が他の場所の変数によって呼び出されたのかを理解できません。jqueryで関数を呼び出すために "this"を使用する理由

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

あるしかし、なぜ私は – user1172928

+0

いけない使用$自己...使用するvar自己= $(このオブジェクトによってeditWidgetでgetWidgetData呼び出すことができない場合this) 次に、 var widgetData = widgetMethods.getWidgetData(self); – sree

関連する問題