JavaScript:字段或属性

JavaScript:字段或属性,javascript,properties,field,Javascript,Properties,Field,在我看过的每个JavaScript教程中,都提到了对象的属性。但他们为什么称之为财产?e、 构造函数属性,var a=function{this.b}其中b再次被称为属性。据我所知,属性有getter和/或setter,所以这些属性应该称为field,不是吗?这就像是散列,映射,字典和关联数组;不同的语言喜欢称它们为不同的东西。术语(不幸的是)不能在编程语言之间100%转换。一些浏览器供应商已经为JavaScript属性实现了getter/setter FF和Webkit已经为DOM对象实现了\

在我看过的每个JavaScript教程中,都提到了对象的属性。但他们为什么称之为财产?e、 构造函数属性,
var a=function{this.b}
其中
b
再次被称为属性。据我所知,属性有getter和/或setter,所以这些属性应该称为field,不是吗?

这就像是
散列
映射
字典
关联数组
;不同的语言喜欢称它们为不同的东西。术语(不幸的是)不能在编程语言之间100%转换。

一些浏览器供应商已经为JavaScript属性实现了getter/setter

FF和Webkit已经为DOM对象实现了
\uuuuuu defineGetter\uuuuuu
\uuuuuuuuu defineGetter\uuuuuu
,并为ECMA规范之外的对象获取和设置。但是,IE8+和IE8+都有
对象。defineProperty
(来自ECMA规范)。读一读


至于您最初的问题,我想说它在JavaScript中被称为属性的原因是它是一种动态语言,基本标记只使用属性和局部变量。由于所有内容都绑定到特定的作用域层次结构,所以每个级别上都有不同的树分支。道格拉斯·克罗克福德将它们命名为属性:)

Ok。10倍。似乎有一些getter和setter 8.6.1。在类字段声明ECMAScript建议(目前是TC39过程的第3阶段)属性中还引用了“字段”一词(以及“私有字段”),允许您更改基础数据的设置和检索方式,而字段只是对象上的变量。由于Object.defineProperty允许您更改此行为,因此它们是属性。如果没有一种机制允许您更改数据的设置或检索方式,那么它们将是字段。