0

私のオブジェクトを考えると:

obj = {}
obj['prop1'] = 1
obj['prop2'] = 2

次のような関数プロパティでアンダースコアを使用して拡張すると:

objHelper = {
              normalizeValue: function(somerules, myObj){
                /* .. some logic involving myObj and somerules*/
              }
        }

_.extend(obj, objHelper)

したがって、関数を呼び出すときは、次のobjようにします。

obj.normalizeValue('somerule', obj);

だから私は自分自身をオブジェクトメソッドに渡していますが、これはちょっと奇妙に思えます。上記の例から、このメソッドが呼び出されているオブジェクトにアクセスする方法はありますか:

normalizeValue: function(somerules){
                    /* .. some logic involving myObj and somerules*/

                          var myObj = someMagicMethod();
                  }
4

1 に答える 1

3

このメソッドが呼び出されているオブジェクトにアクセスする方法はありますか

はい、thisキーワードはまさにそれを行います。

objHelper = {
    normalizeValue: function(somerules){
        /* .. some logic involving somerules and the target of the method call */
        var myObj = this;
    }
};
于 2013-08-05T09:27:05.080 に答える