工程中attribute和property的区别

Attribute和Property都被翻译成“属性”,但是它们的本质不同。

  • “桌子上有个苹果”
    Attribute仅仅是描述了这个“有苹果”的事实,而Property则是直指那个桌子上的苹果。这里的苹果是一个实体,用Attribute来描述只能说明这个事件的事实。它无法准确的描述出具体是哪个苹果在桌子上。
  • “我爸是李刚”
    Attribute仅仅是描述了“李刚”这个名字,而Property则是直接代表“李刚”这个人(实体)。叫“李刚”这个名字的人很多,所以Attribute无法确切表示。而Property则是直指实体的,可以准确描述事物。

Attribute也能够准确表示事物,但是由于attribute只能用文字描述,所以需要更多的文字描述才能准确的说明一个东西。

  • property和attribute的特性
    Attribute是标记语言的概念,标记语言本身是一种文本,所以Attribute这种文本方式描述的性质在标记语言中很容易使用。
    而Property则是保存在内存(memory)中,而内存会随着程序运行结束被释放,因此变得无法长期储存。
    在JavaScript中,DOM对象通常都是多重继承的。同时继承了HTML和JavaScript的Object。Object是完完全全的内存对象,所以使用的是Property,而HTML本身是标记语言所以使用的是Attribute。
    由于一些Attribute是很常用的,比如id等,所以DOM把它们映射到了Property上以方便使用。这样我们就会遇到一个对象同时具有id这个Attribute和Property。

参考网址

上一篇:vue.js Prop 的大小写 (camelCase vs kebab-case)


下一篇:豌豆夹Redis解决方式Codis源代码剖析:Proxy代理