我在试验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.
}
}
您可以在JavaScript中使用this
关键字。您将要做的唯一其他更改是使用实际函数而不是箭头函数,因为箭头函数不会捕获this
范围。
这是MDN页面中关于箭头函数的一句话。
箭头函数表达式的语法比函数表达式短,并且没有自己的this、arguments、super或new.target。
因为它没有自己的this
,所以在这种情况下不能使用箭头函数。
下面是一个如何重构代码以按照预期方式工作的示例。
module.export = {
foo: function (a, b) {
return a + b;
},
bar: function () {
return this.foo(2, 5);
}
}