我正在尝试制作自己的 Javascript 库,并想仔细考虑一下。
我偶然发现了一种约定,即通过在类中添加下划线 _
前缀来在类中创建私有(private)函数,但仍然可以访问它们。它看起来像这样:
export default class Test {
constructor() {
this._privateFunction();
}
_privateFunction() {
...
}
}
我正在考虑将函数放在导出类之外。这是个好主意吗?
export default class Test {
constructor() {
privateFunction();
}
}
function privateFunction() {
...
}
当在导出类之外声明时,我找不到访问该函数的方法,因此这似乎是一个可行的替代方案。
这是个好主意吗?它不会在浏览器中造成解析问题吗?
最佳答案
是的,使用闭包来保持事物(包括函数)的私有(private)性是一种完全正常且常见的方法。解析没有问题。
这种方法的一个缺点是私有(private)函数只是一个函数,而不是一个方法。这意味着您需要显式地将实例作为参数传递才能使其在其中可用:
export default class Test {
constructor() {
privateFunction(this);
}
}
function privateFunction(self) {
…
}
关于javascript - 在 javascript 库中的导出类之外声明函数是实现私有(private)函数的好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197810/