在我看过的每个JavaScript教程中都有一些关于对象属性的提及。但为什么他们称之为财产呢?例如构造函数属性var a = function{this.b}
,其中b
再次被称为属性。据我所知,属性有getter和/或setter,所以那些应该叫做field,不应该吗?
答案 0 :(得分:5)
某些浏览器供应商已经为JavaScript属性实现了getter / setter。
FF和Webkit为DOM对象实现了__defineGetter__
和__defineSetter__
,并为在ECMA规范之外的Object获取和设置。然而,IE 8+和IE 8+都有Object.defineProperty
(来自ECMA规范)。阅读它here
至于你原来的问题,我会说它在JavaScript中被称为属性的原因是它是一种动态语言,而基本标记只使用属性和局部变量。由于所有内容都绑定到特定的范围层次结构,因此每个级别上都有不同的树分支。 Douglas Croockford将它们命名为属性:)
答案 1 :(得分:2)
与hash
,map
,dictionary
和associative array
类似;不同的语言喜欢称他们为不同的东西。术语(遗憾的是)在编程语言之间不是100%可转移的。