javascript - 如何创建公共(public)和私有(private)成员?

标签 javascript jquery

我有点困惑,如何创建公共(public)和私有(private)成员。

到目前为止我的代码模板是这样的:

(function()){
   var _blah = 1;

   someFunction = function() {
     alert(_blah);
   };

   someOtherFunction = function() {
     someFunction();
   }
}();

最佳答案

您可能想要使用 Yahoo Module Pattern :

myModule = function () {

    //"private" variables:
    var myPrivateVar = "I can be accessed only from within myModule."

    //"private" method:
    var myPrivateMethod = function () {
        console.log("I can be accessed only from within myModule");
    }

    return {
        myPublicProperty: "I'm accessible as myModule.myPublicProperty."

        myPublicMethod: function () {
            console.log("I'm accessible as myModule.myPublicMethod.");

            //Within myProject, I can access "private" vars and methods:
            console.log(myPrivateVar);
            console.log(myPrivateMethod());
        }
    };
}();

您在定义 myPrivateVarmyPrivateMethod 的地方定义私有(private)成员,在定义 myPublicPropertymyPublicMethod 的地方定义公共(public)成员> 已定义。

您可以按如下方式简单地访问公共(public)方法和属性:

myModule.myPublicMethod();    // Works
myModule.myPublicProperty;    // Works
myModule.myPrivateMethod();   // Doesn't work - private
myModule.myPrivateVar;        // Doesn't work - private

关于javascript - 如何创建公共(public)和私有(private)成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803323/

相关文章:

javascript - 将 Node 检查器与 Grunt 任务一起使用

javascript - 选择特定 DropDown 的值时获取其值

javascript - 根据 Javascript 中另一个单击的元素向下查找最近的元素

javascript - 切换 ng-show 时,slideToggle 函数停止工作

javascript - Mithril : difference between vnode. 属性和 vnode.state

javascript - 替换 javascript 中的键 JSON

javascript - 是否可以绑定(bind)在 VueJS 中使用 url() 的 SVG 填充属性?

javascript - 无法让 load() 在 img 上工作

jquery - 在带有 jQ​​uery 的 TypeScript 中,为什么我会收到错误 'this' 隐式具有类型 any

javascript - jQuery 实时悬停