JS中属性与方法的示例
Example of Properties vs. Methods in JS
我发现属性和方法之间的语义差异有一个很好的描述(转述为http://www.webdeveloper.com/forum/showthread.php?133712-属性-Vs-方法):
性质就像名词。它们有价值或状态。
方法就像动词。他们执行动作。
属性无法执行操作,方法唯一具有的值是在完成执行操作后返回的值。
例如
属性:门可能值:打开、关闭
方法:打开车门操作:将门属性的值更改为";打开";
创建一个例子:我在理论上理解这一点,但我无法想出一个例子。是否可以向我展示door/openDoor在实际Javascript代码中的外观?
实际上,您需要备份并阅读上面发布的一些链接。但举个简单的例子:
var house = {} ;
house.isDoorOpen = false ;
house.openDoor = function(){
house.isDoorOpen = true ;
}
这里house
是对象。它有一个属性:house.isDoorOpen
。在这里,它更像是一个形容词。门要么打开(true),要么关闭(false)。听起来,它描述了房子的一处房产。
此外,它还有一个方法openDoor
(使用方式如下:house.openDoor()
)。这是它可以做到的。在这种情况下,操作openDoor
会影响isDoorOpen
属性,使其成为真。
让我们看看javascript规范ECMA-262如何描述术语属性
http://www.ecma-international.org/ecma-262/5.1/#sec-4.3.26
4.3.26属性
名称和作为对象一部分的值之间的关联
注:根据财产的形式,价值可能为直接表示为数据值(基元值对象或函数对象)或通过一对访问器间接访问功能。
4.3.27方法
属性值的函数
注:当函数被调用为对象的方法时,对象是传递给函数作为其this值。
还有
Javascript对属性的定义与Java的不同
4.3.29属性
定义属性某些特性的内部值
for in
,循环通过对象的可枚举属性,其中包括其函数
http://eloquentjavascript.net/1st_edition/chapter8.html
"当函数作为属性查找时,它被称为方法,并立即调用,如object.method()。"
似乎确实有一个更标准的财产定义。。
https://en.wikipedia.org/wiki/Property_(编程)#JavaScript
在一些面向对象的编程语言中,属性是特殊类型的类成员,位于字段(或数据)之间成员)和方法。。。。一些面向对象的语言,例如Java,不支持属性,并且要求程序员定义一对访问器和赋值函数方法。"
在属性的更标准、非javascript定义中
C#有属性,Java没有属性
JavaScript中的对象只是存储在Hash中的键值对。b/w属性和方法的区别在于-属性是存储在哈希键中的值,而方法是存储在散列键中的函数。
- 序列化数据属性中对象的最可靠方法
- 如何从对象的原型方法访问JavaScript对象属性
- 设置嵌套对象属性的更好方法
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 区分具有相同名称的属性和方法
- sails.js beforeCreate方法只接收required设置为true的模型属性
- SCRIPT438:对象没有't支持属性或方法'endsWith'在IE10中
- 有什么方法可以将类型指定为 self?或解决方法“属性类型不兼容”
- 打字稿 - 为什么猫鼬中不存在“方法”属性
- 从JavaScript中的另一个方法属性中引用对象方法属性
- Javascript:通过在数组上循环来创建对象方法/属性
- 冲突/方法/属性Javascript错误
- 将' this '的继承扩展到' object '的方法/属性
- Javascript继承静态和实例方法/属性
- 我可以为对象设置正则表达式吗's方法/属性选择器
- 发现HTML对象标记方法/属性
- 为什么我的主干模型奇怪地嵌套在集合中,需要钻取才能访问方法/属性?