- 在JavaScript中使用点运算符操作的DOM对象属性为
property
,在HTML标签上设置的属性叫做attribute
;
<div id="test" class="button" custom-attr="1"></div>
以上id
和class
、custom-attr
都叫做<div>标签的attribute
;
document.getElementById('test').foo = 1; // set property: foo to a number: 1
document.getElementById('test').foo; // get property, return number: 1
以上设置DOM对象的property
。
property
最好翻译成特性,相对于对象本身来说,property
是对象的组成部分;attribute
翻译成属性,是一种对对象的说明;- 比如人,生来有手有脚有眼睛等器官,称作
property
(先天的);而向他人介绍某人时的一种描述,如名字、身高等叫做attribute
(后天的); - “桌子上有个苹果”。
Attribute
仅仅是描述了这个“有苹果”的事实,而Property
则是直指那个桌子上的苹果。这里的苹果是一个实体,用Attribute
来描述只能说明这个事件的事实。它无法准确的描述出具体是哪个苹果在桌子上; - 还有一些HTML自带的属性,它们同时是Attribute和Property。Attribute的数据类型永远都是字符串,而Property就可以非常丰富。