Javascript 如何跨交叉引用私有成员的文件拆分ES6类定义?
引用私有成员,例如Javascript 如何跨交叉引用私有成员的文件拆分ES6类定义?,javascript,node.js,ecmascript-6,es6-class,private-members,Javascript,Node.js,Ecmascript 6,Es6 Class,Private Members,引用私有成员,例如this.#rts()会出现以下错误: SyntaxError:必须在封闭类中声明私有字段“#rts” 虽然在计算该行时,函数已分配给实例方法,并且已正确绑定。 有没有办法做到这一点,即跨文件引用私有成员 注意:我使用的是节点13 例如: import {Cpu6502} from "./cpu6502.mjs"; console.log((new Cpu6502).beq()); cpu6502.mjs: 说明.mjs: 你可以使用这种方法,但你可能想要一些东西,比如混音
this.#rts()
会出现以下错误:
SyntaxError:必须在封闭类中声明私有字段“#rts”
虽然在计算该行时,函数已分配给实例方法,并且已正确绑定。有没有办法做到这一点,即跨文件引用私有成员 注意:我使用的是节点13 例如:
import {Cpu6502} from "./cpu6502.mjs";
console.log((new Cpu6502).beq());
cpu6502.mjs:
说明.mjs:
你可以使用这种方法,但你可能想要一些东西,比如混音
import { lda } from './instructions.mjs'
export class Cpu6502 {
constructor() {
this.lda = lda.bind(this);
}
A = 0xFF
#rts() {
return "RTS";
}
ldx() {
return this.lda();
}
}`
请在这里发布您的代码。请访问,查看和。做一些研究,搜索相关话题等;如果您遇到问题,请在此处发布您的尝试,注意输入和预期输出。此处有任何帮助:?@mplungjan否,它没有解决跨文件引用私有成员的问题。我收到以下错误:
SyntaxError:Unexpected token'('at Loader.moduleStrategy(internal/modules/esm/translators.js:81:18)
您正在使用什么来传输/绑定它?也许您可以尝试在构造函数中移动A=0xFF。我只是在节点13上运行它。并且已经删除了,因为它是旧测试的剩余部分(仍然是相同的神秘错误),我只需要从另一个文件中声明的绑定函数调用一个私有方法。阅读我可以告诉你的代码有点棘手。但这应该是你想要的。是的,我发现最常见的解决方案是下划线约定。
export function beq() {
return this.#rts() // If this line references a public member instead,
// it works fine and `this` is correctly bound.
}
import { lda } from './instructions.mjs'
export class Cpu6502 {
constructor() {
this.lda = lda.bind(this);
}
A = 0xFF
#rts() {
return "RTS";
}
ldx() {
return this.lda();
}
}`