【问题标题】:Why are most properties in js public? [closed]为什么js中的大多数属性都是公开的? [关闭]
【发布时间】:2013-09-17 02:08:52
【问题描述】:

我是 js 新手,我想知道为什么 js 中的几乎所有属性都是公开的。 我来自 C++,我只使用私有属性进行编程,并通过 getter 和 setter 进行访问。

【问题讨论】:

  • 我认为这是因为 JavaScript 没有任何样式指南。 C++ 和 C# 以及其他使用 OOP 的语言都可以使用。 JavaScript 也不是为 oop 作为主要目的而设计的。
  • @DennisZiolkowski JavaScript 具有原型设计和构造函数、对象字面量,所有这些都乐于采用函数或更多对象 作为属性,这个this关键字,可以定义属性的可枚举性和可配置性。事实上,JavaScript 中几乎所有的东西都是一个Object。这怎么不是面向对象的? private 属性的缺乏更多是因为它的工作方式非常不同;一切都与范围和封闭有关。
  • 如果您是 JavaScript 新手,除了已经链接的资源之外,还有一个很棒的资源是 JavaScript MDN,这也是 Crockford 的书之一“JavaScript_The_Good_Parts”也很棒。
  • 如果你习惯了 getter 和 setter,你仍然可以使用它们,你只需引用 vars 而不是私有属性;这两个概念之间没有太大的实际差异。

标签: javascript properties public


【解决方案1】:

Javascript 在语言中没有内置简单的关键字来使属性私有化。您可以将var 用于局部变量(如果它们在全局范围内,它们将不是局部变量)。

您可以使用模块模式将内容设为私有 - http://javascript.crockford.com/private.html

但是因为将事物设为私有并不容易,并且需要一些仪式以及将事物私有化所需的所有大括号/闭包,所以一些 javascript 项目将使用命名约定来执行此操作(例如,末尾的下划线表示私有的变量名)- google 例如http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml

公共和私有的概念仍然存在,只是实现方式不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2013-05-18
    • 2011-01-18
    • 2011-10-13
    • 2014-11-06
    • 2013-01-04
    • 2011-10-06
    相关资源
    最近更新 更多