JavaScript对象表示法-在同一对象内使用方法?
我正在试验node.js,我有一组方法正在使用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
模块导出。导出
,但是其中一些方法意味着可以在同一对象上重用,但我不确定如何进行。在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)。