javascript中用于自己库的静态私有变量
Posted
技术标签:
【中文标题】javascript中用于自己库的静态私有变量【英文标题】:Static private variables in javascript for own library 【发布时间】:2016-06-14 16:23:18 【问题描述】:我开发了一个库来制作易于使用的类结构,就像在 C++ 中一样。我知道有很多方法可以在 JS 中归档 C++ 等效行为,但其中一些方法真的很难像函数重定义那样限制。 为此,我开发了 ClassBuilder.js。
目前我可以通过封装和定义属性来涵盖 C++ 的大部分行为。这包括成员的隐私,如私有、受保护和公共、虚拟功能、继承隐私。还有构造函数和析构函数调用。
目前,我尝试解决列表中的最后一个问题:静态成员。公共静态成员很容易解决,通过使用构造函数作为对象并在该对象中为它们定义属性。
私有静态成员变得有点复杂。对于我最新的派生类,我可以使用 Declaring private static member variable in javascript: Answer from Barmar at ***.com/a/33158134/1789369 的方法(我不能发布超过 2 个链接)
但我没有得到基类的解决方案。 我想征求意见。 即使您认为需要进行全面重组。
最好的问候和非常感谢。
ClassBuilder.js documentation
Latest ClassBuilder.js files
【问题讨论】:
【参考方案1】:你可以在 es6 中使用 const 见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const
另见定义的 getter 属性(如数组中的长度) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
【讨论】:
由于向后兼容性,我已经省略了let
。谢谢你的建议。以上是关于javascript中用于自己库的静态私有变量的主要内容,如果未能解决你的问题,请参考以下文章
Javascript的私有变量和方法共有变量和方法以及特权方法构造器静态共有属性和静态共有方法
如何配置 GitHub Actions 以构建依赖于私有存储库的 Azure 静态 Web 应用程序?