javascript - 包含函数的对象的私有(private)成员

标签 javascript

在 javascript 中,我有一个包含函数的对象,并想向其添加一个私有(private)成员。 我怎样才能做到这一点?

function function1 () {
    var function2 = function () {
        console.log("This is an actual function.");
    }

    function2.publicMember = 5;
    function2.privateMember = 7; 

    return function2;
}

我希望 function1 的用户无法访问 privatMember。 我发现了这个问题,但我不能完全将其转化为我的情况,因为我的对象是一个函数:

How to add private variable to this Javascript object literal snippet?

谢谢!

最佳答案

将其包装到另一个函数中以创建新作用域(即使用 iife ):

function function1 () {
     var function2 = (function(){
       var privateMember = 7; 
       return function () {
          privateMember ++; // do something with really private member
          console.log("This is an actual function.");
       }
    })();

    function2.publicMember = 5;

    return function2;
}

关于javascript - 包含函数的对象的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873055/

相关文章:

javascript - ES6 导入 – jQuery 未定义

javascript - 如何设置图像对象在特定步骤后停止移动

javascript - 如何在 JavaScript 中将字符串的字母切成更小的固定长度 block ?

javascript - 将图像从客户端上传到 Node JS 服务器并在服务器内部保存?

javascript - 如何更换 带空字符串

javascript - wordpress子主题中错误的排队脚本顺序

javascript - 使用 javascript 循环 101 102 …

javascript - 延迟 "manual"将元素升级为定制的内置 Web 组件

javascript for 循环检查显示错误

javascript - <Noscript> 标签在 IE6 中不工作。我可以帮忙吗?