Javascript 为什么js中的大多数属性都是公共的?
我是js的新手,我想知道为什么js中几乎所有的属性都是公共的。Javascript 为什么js中的大多数属性都是公共的?,javascript,properties,public,Javascript,Properties,Public,我是js的新手,我想知道为什么js中几乎所有的属性都是公共的。 我来自C++,在这里我只使用私有属性和通过GETSter和SETTER访问程序。 JavaScript没有简单的关键字,在语言中内置,使属性私有。您可以对局部变量使用var(但是,如果它们在全局范围内,它们就不是局部变量) 您可以使用模块模式将内容设置为私有的- 但由于私有化并不容易,并且需要对私有化所需的所有大括号/闭包进行一点仪式,所以一些javascript项目将使用命名约定来实现这一点(例如,在变量名末尾加下划线表示私有)—
我来自C++,在这里我只使用私有属性和通过GETSter和SETTER访问程序。
JavaScript没有简单的关键字,在语言中内置,使属性私有。您可以对局部变量使用
var
(但是,如果它们在全局范围内,它们就不是局部变量)
您可以使用模块模式将内容设置为私有的-
但由于私有化并不容易,并且需要对私有化所需的所有大括号/闭包进行一点仪式,所以一些javascript项目将使用命名约定来实现这一点(例如,在变量名末尾加下划线表示私有)——例如google
公共和私有的概念仍然存在,只是实现方式不同。我认为这是因为JavaScript没有任何样式指南。C++和C语言等OOP语言都有一种使用。另外,JavaScript也不是为oop而设计的。@DennisZiolkowski JavaScript有原型和构造函数、对象文本,所有这些都乐意将函数或更多对象作为属性,这个
这个关键字,您可以定义属性可枚举性和可配置性。事实上,JavaScript中的几乎所有内容都是对象。这怎么不是OOP?私人财产的缺乏更多是因为它以一种完全不同的方式运作;一切都是关于范围和闭包的。如果你是JavaScript新手,除了已经链接的资源之外,还有一个很好的资源,也是Crockford的书之一“JavaScript\u the\u Good\u Parts”也很好。如果你习惯了getter和setter,你仍然可以使用它们,你只需要引用变量而不是私有属性;这两个概念之间并没有太大的平行差异。