三类JavaScript对象和两类属性作区分:
-
内置对象(native object)是由ECMAScript规范定义的对象或类。例如,数组、函数、日期和正则表达式都是内置对象。
-
宿主对象(host object)是由JavaScript解释器所嵌入的宿主环境(比如Web浏览器)定义的。客户端JavaScript中表示网页结构的HTMLElement对象均是宿主对象。既然宿主环境定义的方法可以当成普通的JavaScript函数对象,那么宿主对象也可以当成内置对象。
-
自定义对象(user-defined object)是由运行中的JavaScript代码创建的对象。
-
自有属性(own property)是直接在对象中定义的属性。
-
继承属性(inherited property)是在对象的原型对象中定义的属性。
function counter(n) {
return {
get count() { return n++ },
set count(m) {
if (m > n) {
n = m
} else {
throw Error('can only set a larger value')
}
}
}
}
网友评论