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

标签 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);

所以我将 self 传递给对象方法,这看起来有点奇怪。有没有办法访问正在调用此方法的对象,即从上面的示例:

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

                          var myObj = someMagicMethod();
                  }

最佳答案

Is there a way to access the object on which this method is being invoked on

是的,this keyword确实做到了这一点。

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

关于javascript - 使用函数扩展对象并引用当前对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18054622/

相关文章:

javascript - 单击添加到 DOM 的元素无法获得正确的值

javascript - 网站无法在 Firefox/Chrome 中运行,但可以在 IE 中运行

javascript - 带有 jQ​​uery Mobile 的三个输入的一个标签

javascript - Mongoose JS : `TypeError: Object #<Object> has no method ' save'`: Cannot save part of a document?

javascript - 在 JavaScript 中设置请求 header

javascript - 如果我在下拉框中选择其他选项,如何激活文本框

javascript - 自定义属性未定义

javascript - 为什么我的二维数组不返回 true

javascript - 去掉html注入(inject)?

javascript - 通过循环渲染元素时在 React 中建立索引