使用函数扩展对象并引用当前对象

时间:2013-08-05 09:22:03

标签: javascript

鉴于我的目标:

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();
                  }

1 个答案:

答案 0 :(得分:3)

  

有没有办法访问在

上调用此方法的对象

是的,this keyword确实做到了。

objHelper = {
    normalizeValue: function(somerules){
        /* .. some logic involving somerules and the target of the method call */
        var myObj = this;
    }
};