Javascript JS中的属性与方法示例

Javascript JS中的属性与方法示例,javascript,methods,properties,Javascript,Methods,Properties,我发现了关于属性和方法之间语义差异的一个很好的描述(转述,通过): 属性就像名词一样。它们有一个值或状态 方法就像动词一样。他们执行动作 属性无法执行操作,方法唯一的值是在完成操作后返回的值 e、 g 属性:门可能值:打开、关闭 方法:打开门操作:将门属性的值更改为“打开” 创建一个例子:我在理论上理解这一点,但我无法给出一个例子。能否向我展示door/openDoor在实际Javascript代码中的外观?真的,您需要备份并阅读上面发布的一些链接。但举个简单的例子: var house = {

我发现了关于属性和方法之间语义差异的一个很好的描述(转述,通过):

属性就像名词一样。它们有一个值或状态

方法就像动词一样。他们执行动作

属性无法执行操作,方法唯一的值是在完成操作后返回的值

e、 g

属性:门可能值:打开、关闭

方法:打开门操作:将门属性的值更改为“打开”


创建一个例子:我在理论上理解这一点,但我无法给出一个例子。能否向我展示door/openDoor在实际Javascript代码中的外观?

真的,您需要备份并阅读上面发布的一些链接。但举个简单的例子:

var house = {} ;

house.isDoorOpen = false ;

house.openDoor = function(){
    house.isDoorOpen = true ;
}
这里的
house
是对象。它有一个属性:
house.isdoorpen
。在这里,它更像一个形容词。门打开(正确)或关闭(错误)。听起来,它描述的是房子的财产


此外,它还有一个方法
openDoor
(其用法如下:
house.openDoor()
)。这是它可以做到的。在本例中,操作
openDoor
会影响
isdoorpen
属性,使其成为现实。

让我们看看javascript规范ECMA-262如何描述术语属性

4.3.26物业

名称和作为对象一部分的值之间的关联

注:根据属性的形式,值可能是 直接表示为数据值(原语值、 对象或函数对象)或通过一对访问器间接访问 功能

4.3.27方法

作为属性值的函数

注意:当函数作为对象的方法调用时,对象是 作为其此值传递给函数

Javascript的属性定义与Java的不同

4.3.29属性

定义属性某些特征的内部值


对于in
,循环对象的可枚举属性,其中包括其函数

“当函数作为属性进行查找时,它被称为方法, 并立即调用,如在object.method()中。“

对财产的定义似乎更为标准

在某些面向对象编程语言中,属性是 特殊类型的类成员,介于字段(或数据)之间 成员)和方法…一些面向对象的语言,例如 Java,不支持属性,并要求程序员定义 而是一对访问器和mutator方法。“

在更标准、非javascript的属性定义中


C#有属性,而Java没有属性

你可能比自己领先;您应该首先通读一下,因为您的问题不是特定于Javascript的。如果您还不清楚数据和函数之间的区别,那么您应该进一步备份。此外,我认为这种区别并不真正适用于JS,因为方法只是存储在属性中的函数(在将其作为方法调用时隐式地将函数上下文集设为对象)它不必特别适用于JS,我想知道它在我目前学习的特定语言中是如何工作的。我很感激这些链接和建议,我会仔细看看。我试图理解的是JS的语义,如何编写它,这也是这个过程的一个重要部分。每个人都有自己的学习风格,这将真正帮助我理解JS。@jon问题是,不同的语言对这些东西的定义非常不同,而且相互矛盾。所以javascript并没有以这种方式区分属性和方法。javascript中的b/w属性和变量有什么区别。我所能想到的是:对象变量称为属性,排除一切都是变量,我们不称它们为属性。@androidplusios.design我们称属于对象的值为“属性”。我认为这是一种合乎逻辑的英语用法。“这房子有一扇敞开的门”