您的位置:首页 > Web前端 > JavaScript

JS对象

2016-05-11 23:05 316 查看

JS对象

属性

检测属性

JS对象可以看做属性的集合,可以通过in运算符、hasOwnPreperty()和propertyIsEnumerable()

in

var o={x:1}

"x" in o;//true

"y" in o;//false

"toString" in o;// true :o 继承toString 属性


hasOwnProperty() 用来检测给定的名字是否是对象的自有属性

propertyIsEnumerable是hasOwnProperty()的增强版,只有检测到这个自由属性且这个属性的可枚举性为true时,它才返回true;

!== 判断一个属性是否是undefined,

枚举属性

删除属性

delete 运算符可以删除对象的属性,

delete 只是断开属性和宿主对象的联系而不会去操作属性中的属性

delete 只能删除自有属性,不能删除继承属性,(要删除继承属性必须从定义这个属性的原型对象上删除他,而且这会影响到所有继承自这个原型的对象)

返回值待讨论,P128

属性特性(propertity attribute)

可写 (writable attribute)

可枚举(enumerable attribute)

可配置(configurable attribute)

自有属性

直接在对象中定义的属性,可以用对象的hasOwnProperty()来检测给定的名字是否是对象的自有属性。

继承属性

是在对象的原型对象中定义的属性

当查询某个属性时,会先查询自有属性,如果没有,继续在其原型对象中查询,如果没有,且此原型对象还有原型,则继续查询,指导找到这个属性,或者查找到一个原型是null的对象为止。对象的原型属性构成了一个链。

属性的查询和设置

对象特性(object attribute)

对象的扩展标记

指明是否可以向该对象添加新属性(ECMAScript 5)

对象的类

标识对象类型的字符串

对象的原型

指向另一个对象,本对象的属性继承自它的原型对象。

宿主对象

是JS解释器所嵌入的宿主环境定义的。

自定义对象

运行中JS代码创建的对象。

内置对象

* 是ECMAScript规范定义的对象或类。

创建对象

对象直接量

由若干名/值对组成的映射表,名/值对中用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来。

var book={

"main title":"JS",

"sub-title":"",

author:{

firstname:"D",

secongname:"F"

}

};


new

使用new运算符创建并初始化一个新对象,关键字new 后跟随一个函数调用。这个函数调用就是构造函数。

JS 语言核心中的原始类型都包含内置构造函数。

原型

每一个JS对象(除null外)都和另一个对象相关联,这个对象就是原型,每一个对象都从原型继承属性。

所有通过对象直接量创建的对象都具有同一个原型对象,并可以通过JS代码Object.prototype获得对原型对象的引用。

通过关键字 new 和构造函数调用创建的对象的原型就是构造函数的prototype属性的值。

Object.property没有原型对象。不继承任何属性,

Object.create()

是一个静态函数,须传入所需的原型对象。也可以是一个null,表示创建没有原型的新对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: