新学JS对象概念小结(摘录于犀牛书第6版)

来源:互联网 发布:张佳玮 詹姆斯 知乎 编辑:程序博客网 时间:2024/06/04 17:57

对象

对象是将很多原值或者其他对象聚合在一起的复合值。

对象的别名:{name1:"散列(hash)",name2:"散列表(hashtable)",name3:"字典(dictionary)",name4:"关联数组(associative array)"}。

JavaScript核心特征:原型式继承。

原型式继承:javascript对象可以从一个称为原型的对象继承属性。

对象特性:

①对象的原型(prototype)指向另一个对象,本对象的属性继承自他的原型对象。

②对象的类(class)是一个标识对象类型的字符串。

③对象的扩展标记(extensible flag)指明了(在ECMAScript 5中)是否可以向该对象添加新属性。

对象的属性

对象是属性的无序集合,属性以名/值方式存在。

属性名是字符串,我们可以把对象看成是从字符串到值的映射。

属性特性:

①可写(writable attribute),表明是否可以设置该属性的值。

②可枚举(enumerable attribute),表明是否可以通过for/in循环返回该属性。

③可配置(configurable attribute),表明是否可以删除或修改该属性。

对象小结

Javascript对象是动态的,可以新增属性也可以删除属性,他们常用来模拟静态对象以及静态类语言中的“结构体”(struct)。有时他们也用做字符串的集合(忽略名/值对中的值)。

除了字符串、数字、true、false和undefined,JavaScript中的值都是对象。

对象是可变的,我们通过引用而不是值来操作对象。

 

三类JavaScript对象和两类属性的区分

三类对象:

①内置对象(native object)是有ECMAScript规范定义的对象或类。例如,数组、函数、日期和正则表达式都是内置对象。

②宿主对象(host object)是由JavaScript解释器所嵌入的宿主环境(比如Web浏览器)定义的。客户端JavaScript中表示网页结构的HTMLElement对象均是宿主对象。宿主环境定义的方法可以当成普通的JavaScript函数对象,宿主对象也可以当成内置对象。

③自定义对象(user-defined object)是由运行中的JavaScript代码创建的对象。

两类属性:

①自有属性(own property)是直接在对象中定义的属性。

②继承对象(inherited property)是在对象的原型对象中定义的属性。

 

0 0