将命名空间变量设置为"private"



我正在创建一个命名空间,想知道如何限制对命名空间变量的可访问性,以便只能从命名空间内部访问它。

在我的示例代码中,我希望 PrivateExec private且无法在命名空间之外访问。

var demo = {
    a: "demo",
    b: {
        PrivateExec: function () {
            //execute
        },
        ExecA: function () {
            PrivateExec();
        },
        ExecB: function () {
            PrivateExec();
        }
    }
}
demo.ExecA(); //success
demo.PrivateExec(); //fails because of private

尽量不要使用此代码: 你的变量应该是私有的!

var value = Symbol();
class MyClass {
    constructor(){
        this[value] = "this is a test string";
    }
}
var call = new MyClass();
console.log(call.value); // should be undefined