代码之家  ›  专栏  ›  技术社区  ›  Tower

我应该关心JavaScript中的私有成员吗

  •  2
  • Tower  · 技术社区  · 15 年前

    我知道JavaScript不支持私有成员,但是你可以模仿它们。我想知道这是否值得。在JavaScript中使变量和/或函数私有有意义吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   bobince    15 年前

    在JavaScript中使变量和/或函数私有有意义吗?

    我会说不。。。除了JavaScript之外,没有其他语言。

    信息隐藏和封装都是非常值得称赞的,但是除非在应用程序中有安全边界,否则实际上不需要使用严格的语言级别限制来强制实现私有性。谁是您保护代码不受信任的攻击者?你自己?你团队的其他人?

    __caller__ .)

    相反,请考虑Python的方式:为有效私有化创建一个约定,即使该语言没有强制执行它。在成员名称的开头加一个下划线就足够警告类用户不应该与该成员发生冲突,但在调试或原型设计时,不要让自己成为一堆烦人的额外工作,需要暂时忽略私有性。

        2
  •  0
  •   Community Mohan Dere    9 年前

    怎样

    JavaScript private methods

    这里有一篇关于签名的文章,其中确实有一段专家的名言:

    另一方面,由于JavaScript没有公共方法和私有方法的概念,因此没有内部方法可以通过简单地对类签名来保护。此外,所有方法都可以在运行时更改,因此必须在运行时进行保护。

    在JavaScript中,您可以向现有对象添加新属性,或者在运行时替换现有属性(包括方法)。在Java中不能这样做。因此,Java中自动的保护必须在JavaScript中单独处理

    http://docs.sun.com/source/816-6409-10/sec.htm