javascript - 实现单个函数来设置和获取 JavaScript 闭包中所有私有(private)变量的值

标签 javascript closures private iife

我有一个函数,它有一些变量,因为它们位于函数内部,它们是函数的本地函数,因此是私有(private)的。现在我可能有很多这样的变量,为了设置一个值并从外部获取变量值,我必须为每个私有(private)变量编写 set 和 get 。 无论如何,JavaScript 中是否有用于获取和设置所有私有(private)变量(PrivateOne 和 PrivateTwo)的通用函数。

        privateClosure = (function(){
        var PrivateOne;
        var PrivateTwo;
        setPrivate = function(VariableName,Value)
        {
        VariableName = Value;
        }
        getPrivate = function(VariableName)
        {
        return VariableName;
        }
        return{setPrivate,getPrivate};
        })();
        // I want to do something like this
        privateClosure.setPrivate(PrivateOne,10);
        privateClosure.getPrivate(PrivateOne);
        privateClosure.setPrivate(PrivateTwo,20);
        privateClosure.getPrivate(PrivateTwo);
        //Only one Function for all the private variable in closure.



    Is there anyway in javascript to have common function for getting and setting all private variable(PrivateOne and PrivateTwo).

最佳答案

您可以关闭 map :

 var data = (function(){
   var lookup = new Map();

   return {
     get(v){
       return lookup.get(v);
      },
      set(a,v){
       return lookup.set(a,v);
      }
   }
 })();

所以你可以这样做:

 data.set("a",1);
 alert( data.get("a"));

关于javascript - 实现单个函数来设置和获取 JavaScript 闭包中所有私有(private)变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45648583/

相关文章:

javascript - Botmaker 解决 Qnamaker 后续问题

javascript - JavaScript 闭包的相互矛盾的描述

java - java中私有(private)变量的获取和设置

javascript - eventListener 适用于应该位于函数私有(private)范围内的变量

javascript - 使用 JavaScript 进行网页抓取? JavaScript 文件 I/O? JavaScript 迭代 URL?自动加载外部脚本?

javascript - Angular 2 DI 无法解析参数,HTTP 客户端模块

javascript - 在 Javascript 中设置函数的最佳方式(可能通过闭包?)

php - 如何将闭包绑定(bind)到 PHP 中的静态类变量?

Javascript 模拟真正的私有(private)变量并使用 getter/setter 管理它

java - 为什么外部Java类可以访问内部类私有(private)成员?