在Javascript中创建私有静态函数

Create private static function in Javascript?

本文关键字:静态函数 创建 Javascript      更新时间:2023-09-26

我使用以下代码创建:私有属性,私有方法,公共属性,公共方法和公共静态属性。

function ClassA() {
    var privateProperty = 'private_default_value';
    var privateMethod = function() {
        console.log("private method executed ...");
    };
    this.publicProperty = 'public_default_value'; 
    this.publicMethod = function() {
        console.log("public method executed ...");
    };
    ClassA.publicStaticProperty = "public_static_default_value";
    // How to create here: ClassA.privateStaticProperty ?
};
var instance = new ClassA();
instance.publicMethod();
console.log(ClassA.publicStaticProperty);

如何在该类中创建私有静态属性

这是一个使用IIFE来创建一个由构造函数ClassA可见的作用域的解决方案:

var ClassA = (function(){
    var Constructor = function(){
        var privateProperty = "private_default_value";
        var privateMethod = function() {
            console.log("private method executed ...");
        };
        this.publicProperty = "public_default_value"; 
        this.publicMethod = function() {
            console.log("public method executed ...");
        };
    }
    Constructor.publicStaticProperty = 'public_static_default_value';
    var privateStaticProperty = "private_static_default_value";
    return Constructor;
})();

privateStaticProperty是"静态的":只有一个属性。

privateStaticProperty是"private":你不能从IIFE外部读取它