JavaScript对象表示法-在同一对象内使用方法?

JavaScript对象表示法-在同一对象内使用方法?,javascript,reusability,object-notation,Javascript,Reusability,Object Notation,我正在试验node.js,我有一组方法正在使用模块导出。导出,但是其中一些方法意味着可以在同一对象上重用,但我不确定如何进行。在PHP中,我只需引用这个。我知道,这个可以在原型对象中引用,但是在JavaScript对象表示法中也可以这样做吗 示例代码: module.export = { foo: (a, b) => { return a + b; }, bar: () => { return foo(2, 5); // Th

我正在试验node.js,我有一组方法正在使用
模块导出。导出
,但是其中一些方法意味着可以在同一对象上重用,但我不确定如何进行。在PHP中,我只需引用
这个
。我知道,
这个
可以在原型对象中引用,但是在JavaScript对象表示法中也可以这样做吗

示例代码:

module.export = {

    foo: (a, b) => {
        return a + b;
    },

    bar: () => {
       return foo(2, 5); // This is where i run into problems, using 'this' has no effect.
    }

}
您可以在JavaScript中使用关键字。您唯一需要做的其他更改是使用实际函数,而不是,因为箭头函数不捕获此范围

这是一段引自《圣经》的话

箭头函数表达式的语法比函数表达式短,并且没有自己的this、arguments、super或new.target

因为它没有自己的
this
,所以在这种情况下不能使用箭头函数

下面是一个示例,说明如何重构代码,使其按预期的方式工作

module.export = {

    foo: function (a, b) {
        return a + b;
    },

    bar: function () {
       return this.foo(2, 5);
    }

}
您可以在JavaScript中使用关键字。您唯一需要做的其他更改是使用实际函数,而不是,因为箭头函数不捕获此范围

这是一段引自《圣经》的话

箭头函数表达式的语法比函数表达式短,并且没有自己的this、arguments、super或new.target

因为它没有自己的
this
,所以在这种情况下不能使用箭头函数

下面是一个示例,说明如何重构代码,使其按预期的方式工作

module.export = {

    foo: function (a, b) {
        return a + b;
    },

    bar: function () {
       return this.foo(2, 5);
    }

}

实际上,简写方法更接近这里的用例:
foo(a,b){return a+b;},bar(){return this.foo(2,5)}
,因为它们的行为类似于箭头函数,但也有自己的
this
。感谢您的澄清。将ES6与箭头功能一起敲入我的头骨后,我只是假设它也会以同样的方式工作。现在我不太确定是否值得保存额外的几个字符。@Xufox,你是说可以省略方法键/名称吗?是这样吗?正如在foo中一样:函数(){}可以只写foo(){}?@FrederickM.Rogers是的。是的。它们就像箭头函数一样,不可构造(不能是
new
'd)。实际上,简写方法更接近这里的用例:
foo(a,b){return a+b;},bar(){return this.foo(2,5)}
,因为它们的行为类似于箭头函数,但也有自己的
this
。感谢您的澄清。将ES6与箭头功能一起敲入我的头骨后,我只是假设它也会以同样的方式工作。现在我不太确定是否值得保存额外的几个字符。@Xufox,你是说可以省略方法键/名称吗?是这样吗?正如在foo中一样:函数(){}可以只写foo(){}?@FrederickM.Rogers是的。是的。它们与箭头函数一样,不可构造(不能是
new
'd)。