0

我正在尝试使用 node.js,并且我有一组正在导出的方法,module.exports但是其中一些方法可以用于同一个对象,但我不知道该怎么做。在 PHP 中,我会简单地引用this. 我知道this可以在原型对象中引用,但是在 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.
    }

}
4

1 回答 1

2

您可以this在 JavaScript 中使用关键字。您必须进行的唯一其他更改是使用实际函数而不是箭头函数,因为箭头函数不捕获this范围。

这是MDN 页面上关于箭头函数的引述。

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

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

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

module.export = {

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

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

}
于 2018-07-18T18:17:45.197 回答