javascript - 私有(private)变量是否有 "typical"用法?

标签 javascript

首先,我在 JavaScript 方面的经验仅限于 Web 开发和一些自学。我想了解在 JavaScript 中拥有私有(private)成员的意义。举个例子,

var myObject = {
    WriteWord: function() {
        var secret = 'word';
        document.writeln(secret);  
    }
};

myObject.WriteWord();

调用者不能看到私有(private)变量secret。 AFAIK,我可以通过几种方式通知潜在调用者 WriteWord 的存在:

  1. 记录代码。 Like jQuery does .
  2. 对于 .NET 人员,编写自定义 visual studio intellisense 插件。
  3. 直接阅读代码。

现在假设我缩小甚至混淆了代码。它现在不可读。在我看来,鉴于这种情况,缺少文档与私有(private)变量一样好。

这个场景是不常见的还是错误的? JavaScript 中私有(private)变量的重要性是什么?

最佳答案

在 Javascript 或任何其他语言中,封装和私有(private)变量的全部目的是以一种允许随时更改类的实现而不破坏其余部分的方式来限制自己的代码。您可以将 secret 重命名为任何其他名称或将其完全删除,并确保代码将继续正常工作。

另一方面,公共(public)方法是生产者和消费者之间的耦合点,您不能轻易更改公共(public)接口(interface)、方法名称或参数而不冒破坏依赖于它的程序的其他部分的风险. (这与代码是否被混淆或它的文档处理方式完全无关 - 如果有人使用公共(public)方法,耦合将已经存在)

关于javascript - 私有(private)变量是否有 "typical"用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881335/

相关文章:

javascript - 在文本输入框中添加 block ,类似于电子邮件应用程序到字段

javascript - 如何在 JavaScript 中容纳一个包含单引号和双引号的字符串

javascript - i18next 在 jquery 中不起作用

javascript - 为什么删除功能不起作用?

Javascript CSV 导出逗号问题

javascript - 带有绿色复选标记的控制台消息 JavaScript

javascript - 如何在登录表单上方显示错误的用户名和密码?

javascript - 如何在运行时美化html/jsp页面中的源代码?

javascript - dc.js 按 y 轴/值排序顺序折线图

javascript - getScript 的 dart 等价物是什么