如何在命名空间内创建私有变量?

2023-11-22

对于我的 Web 应用程序,我正在 JavaScript 中创建一个命名空间,如下所示:

var com = {example: {}};
com.example.func1 = function(args) { ... }
com.example.func2 = function(args) { ... }
com.example.func3 = function(args) { ... }

我还想创建“私有”(我知道这在 JS 中不存在)命名空间变量,但不确定使用的最佳设计模式是什么。

可不可能是:

com.example._var1 = null;

或者设计模式会是别的什么吗?


道格拉斯·克罗克福德 (Douglas Crockford) 推广了所谓的模块模式您可以在其中创建带有“私有”变量的对象:

myModule = function () {

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

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

}(); // the parens here cause the anonymous function to execute and return

但正如你所说,Javascript 并没有真正的私有变量,我认为这有点麻烦,它破坏了其他东西。例如,尝试从该类继承。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在命名空间内创建私有变量? 的相关文章

  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • 当内部元素滚动位置到达顶部/底部时防止父元素滚动?

    我有一个小 浮动工具箱 一个带有position fixed overflow auto 效果很好 但是 当在该框内滚动 使用鼠标滚轮 并到达底部或顶部时 父元素 接管 滚动请求 工具框后面的文档滚动 这很烦人 而不是用户 要求的 我正在使
  • 三个JS,给纹理添加镜面反射(光泽)

    我有一个纹理应用于 Three js 中的对象 我想为其添加一些镜面反射或光泽 我看到这样的例子 new THREE MeshPhongMaterial color 0x996633 specular 0x050505 shininess
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • 判断字符串是否包含有效的javascript代码

    我正在寻找一个C 返回的函数true如果字符串包含有效的 JavaScript 语法 例如 IsValidJavascript alert hello 会回来true but IsValidJavascript alertXXhelloZ
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • 如何通过setTimeout函数定期打印数字?

    var i 0 function counter for i i lt 100 i setTimeout gt console log i 2000 counter 我想以 2 秒的间隔打印 i 但它立即打印 每次打印调用只需要几微秒 为什
  • 正则表达式中连字符的这种用法有效吗?

    NB I only想知道它是否是正则表达式定义中未转义连字符的有效应用 它是not关于匹配电子邮件 连字符或反斜杠的含义 量词或其他任何内容的问题 另外 请注意 链接的答案并没有真正讨论转义 未转义连字符之间的有效性问题 通常我会像这样声明
  • websockets 如何处理同一浏览器的两个选项卡

    I have 1 个 PHP 服务器 提供 http 请求 和 1 node js 发布更新的数据消息 每个连接都带有 websocket php 服务器设置其 cookie 在一个浏览器中 此 cookie 可在所有选项卡中使用 当浏览器
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • jQuery:将文本区域滚动到给定位置

    我有一个包含很多文本的文本区域
  • node.js 模块/导出系统:是否可以将模块导出为函数

    我想在 Dispatch js 中做这样的事情 function handle msg exports handle 这在调用index js中 var dispatch require Dispatch dispatch data 有任何
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这

随机推荐

  • 模板c++的模板?

    我已经成功地创建了一些 preperty 类 其中包含我们期望的所有内容 我的意思是 使用它时 您不需要仅使用来调用函数operator 将完成所有工作 但我想只有一件事如果我们能解决就好了 template
  • 将 javascript 添加到 ASP.NET 文本框控件的 OnBlur 属性

    有没有办法指定一些 JavaScript 在 ASP NET 文本框的 OnBlur 事件上执行 在我看来 如果我向 TextBox 对象添加任何事件处理程序 它们只会导致回发到服务器 而不是执行我想要的操作 基本上 我只想能够在 HTML
  • 如何使用 Jquery 在午夜使 Cookie 过期?

    我这样做了 cookie ultOS i expires 1 但它只会在第二天到期 如何让 cookie 在午夜过期 这会起作用吗 var date new Date var midnight new Date date getFullYe
  • 如何使用 \x1b[2j 清除屏幕?

    我们如何实施clrscr 谷歌搜索我发现 x1b 2j可以用来清屏 但是我们如何使用它呢 标准 C 库不提供清除屏幕的方法 为此 您需要一个依赖于操作系统的库 在 DOS 和 Windows 下 对于在 DOS 或 Windows 控制台中
  • 分发时隐藏swift框架中的源代码

    我创建了一个快速框架来分发给私人客户 这是我第一次创建 iOS 框架 所以我对很多事情都一无所知 我的源代码是否有可能被隐藏 我已经到处搜索 但找不到正确的答案 我不确定我是否解释得很彻底 但为了简化起见 我不希望开发人员能够修改或查看我的
  • ChartJS:数据标签:显示饼图中的百分比值

    我有一个带有四个标签的饼图 var data data 50 55 60 33 labels India China US Canada backgroundColor 4b77a9 5f255f d21243 B27200 borderC
  • CoffeeScript:使用instanceof与Class.constructor.name

    如果我有课 class Haha constructor lolAmount 1 gt alert lolAmount 我想检查一个对象是否属于正确的类 使用它是否总是安全的constructor name haha new Haha un
  • 如何在 ggplot2 中将地图与复杂的点显示结合起来?

    我正在尝试用非洲背景地图绘制研究地点的点 我可以独立创建这两个 但我很难将它们叠加在一起 我使用的非洲地图是来自 maplibrary org 的 Esri shapefile 它可以从我的保管箱中获得 https www dropbox
  • 将文件分区为日期从 kafka 写入 hdfs 的最有效方法是什么

    我正在开发一个应该通过 kafka 写入 hdfs 的项目 假设有一个在线服务器将消息写入kafka 每条消息中都包含时间戳 我想创建一个作业 其输出将是根据消息中的时间戳的一个或多个文件 例如如果kafka中的数据是 ts 01 07 2
  • 在 Windows 上部署 FireMonkey 的最低要求

    Windows 计算机运行 FireMonkey 开发的应用程序的最低要求是什么 它可以运行任何可以运行 VCL 应用程序的机器吗 具体可以在XP上运行吗 来自文档 Windows 要求 GPU 必须支持 Pixel Shader 2 0
  • 在 R 矩阵中添加新列

    我有一个包含 1 列的矩阵 gt Control Title name vehicle scan id4 153 CL2004060801AA 155 CL2004060801AA 232 EC2004102602AA 我想添加一个新列 名
  • istringstream - 如何做到这一点?

    我有一个文件 a 0 0 b 1 1 c 3 4 d 5 6 使用 istringstream 我需要先获取 a 然后获取 b 然后获取 c 等等 但我不知道该怎么做 因为网上或我的书中没有好的示例 到目前为止的代码 ifstream fi
  • 对于每个函数,循环遍历特定命名的工作表

    我正在尝试找出编写宏的正确方法 该宏将遍历 12 个具有特定名称 一月 二月 十二月 的工作表 我想也许for each将是一个不错的选择 所以我尝试了以下方法 dim crntSht as worksheet set crntsht Ja
  • 在 C# 中编写 XML - “Epilog 状态下的令牌 StartElement 将导致无效的 XML 文档”错误

    我正在尝试写入 XML 文档 从列表的 ArrayList 中获取数据 for int i 0 i lt 15 i string headname headers 0 as List
  • 如何提取 lmer 输出的固定效应部分的相关性

    当你有一个包含大量因素和相互作用的多级模型时 固定效应矩阵的相关性的大小可能会变得相当大且不清楚 我可以使用symbolic cor Tprint 方法中的参数可以更清晰地打印摘要 如下所示 ratbrain lt within read
  • CSS 边框不出现

    我正在尝试设置导航菜单设计的样式以反映 timeanddate com 上的菜单 如下图所示 为了创建颜色 他们在 CSS 中使用了简单的底部和左侧边框 我正在尝试为我的边框添加边框 li 我的网站沙盒上的标签 http www escap
  • 从属性文件创建 Spring Boot 动态 Bean

    如何根据application yml文件动态定义bean 例如 YAML 文件如下所示 service host http localhost 8080 account url account content type applicati
  • 在 PowerShell 中写入时锁定文件

    我有一个要求 其中一个进程连续写入特定文件夹中的文件 同时 另一个脚本将文件从该文件夹移动到另一个文件夹 但是 当第一个进程正在写入文件时 不得移动文件 PowerShell中是否有任何进程 函数可以满足这个要求 在 Powershell
  • 在 pyvis 中我总是收到此错误:“AttributeError:'NoneType'对象没有属性'render'”

    我想使用最新版本的 pyvis 和 python 版本 3 9 6 进行网络可视化 from pyvis network import Network g Network g add node 0 g add node 1 g add ed
  • 如何在命名空间内创建私有变量?

    对于我的 Web 应用程序 我正在 JavaScript 中创建一个命名空间 如下所示 var com example com example func1 function args com example func2 function a