首页 > 解决方案 > 如何在 javascript 类中模拟受保护的变量?

问题描述

在javascript中模拟受保护变量的最佳方法是什么?

class Parent{

    #variable; // Private variable. This is not to be public.

    constructor(value)
    {
        this.#variable = value;
    }
}

class Child extends Parent{

    getNewVariable()
    {
        return (1 + this.#variable); // Uncaught SyntaxError: Private field '#variable' must be declared in an enclosing class
                                     // We want #variable to be accessible without making it public.
    }
}

由于 javascript 还不支持受保护的变量,

从扩展类中的超类访问私有变量的最佳选择是什么?

我无法找到太多关于此的文档,因此任何建议都会非常有帮助。

标签: javascriptclassinheritanceprivateprotected

解决方案


使用 TypeScript 怎么样?TypeScript 类支持protected关键字(请参阅文档),并且比 vanilla JavaScript 有很多额外的好处。


推荐阅读