Как разделить определение класса ES6 по файлам, ссылающимся на частные члены? - PullRequest
0 голосов
/ 14 апреля 2020

Ссылка на закрытый член EG this.#rts() выдает ошибку:

SyntaxError: Закрытое поле ' # rts ' должно быть объявлено в классе включения

Хотя при оценке этой строки функция была назначена методу экземпляра и this правильно привязано.
Есть ли способ достичь этого, IE для ссылки на приватный участники в файлах ?

Примечание: Я использую узел 13.

Пример:

import {Cpu6502} from "./cpu6502.mjs";
console.log((new Cpu6502).beq());

cpu6502.m js :

import {beq} from "./instructions.mjs";
export class Cpu6502 {
    beq = beq // `this` is correctly bound
    #rts = () => "RTS"
}

Инструкция.m js:

export function beq() {
    return this.#rts() // If this line references a public member instead,  
                       // it works fine and `this` is correctly bound.
}

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете использовать этот подход, но, вероятно, вы хотите somenthing, как миксин

import { lda } from './instructions.mjs'

export class Cpu6502 {
    constructor() {
       this.lda = lda.bind(this);
    }
    A = 0xFF
    #rts() {
        return "RTS";
    }
    ldx() {
        return this.lda();
    }
}`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...