我有一个只能在类内部使用的函数,不希望在类外访问它。
class Auth {
/*@ngInject*/
constructor($http, $cookies, $q, User) {
this.$http = $http;
this.$cookies = $cookies;
this.$q = $q;
this.User = User;
localFunc(); // Need to create this function, and need it to be accessible only inside this class
}
}
到目前为止我所做的是在类外声明函数
function localFunc() {
return 'foo';
}
class Auth {
...
}
但是,这并不好,因为它污染了全局函数,除非我将它包装在 IIFE 中。那么,我是否可以通过某种方式在 ES6 类中创建本地函数?
最佳答案
不,无法在类
中声明局部函数。您当然可以声明(静态)辅助方法并使用下划线前缀将它们标记为“私有(private)”,但这可能不是您想要的。您始终可以在方法内部声明局部函数。
但是如果您多次需要它,那么唯一的办法就是将它放在 class
旁边。如果您正在编写脚本,那么像往常一样需要 IEFE。如果您正在编写 ES6 模块(这是首选解决方案),那么隐私是微不足道的:只是不要export
函数。
关于javascript - 如何在 ES6 类中声明局部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33760162/