首页 > 代码库 > javascript权威指南笔记(第6章 对象)

javascript权威指南笔记(第6章 对象)

 


 

1、对象概述

1、对象常见的用法:

  create 、set 、Query 、delete 、test、enumerate

2、对象的属性特性:

  可写、可枚举、可配置

3、每个对象的对象特性:

  原型、对象的类、对象的可扩展性

4、对象和属性分类:

  内置对象、宿主对象、自定义对象、自由属性、继承属性


 

2、创建对象

1、对象直接量

2、通过new创建对象

3、原型

4、Object.create()

  第一个参数:这个对象的原型

  第二个参数:可选、对对象的属性进行进一步描述

var o1 = Object.create({x:1, y:2}); // o1 inherits properties x and y.var o2 = Object.create(null); // o2 inherits no props or methods.var o3 = Object.create(Object.prototype); // o3 is like {} or new Object().

 

  通用的inherit()函数,兼容版本(但是并不能完全替代create如不能接受第二参数)

function inherit(p) {    if (p == null) throw TypeError(); // p must be a non-null object    if (Object.create) // If Object.create() is defined...    return Object.create(p); // then just use it.    var t = typeof p; // Otherwise do some more type checking    if (t !== "object" && t !== "function") throw TypeError();    function f() {}; // Define a dummy constructor function.    f.prototype = p; // Set its prototype property to p.    return new f(); // Use f() to create an "heir" of p.}

 


 

3、属性的查询和设置

1、作为关联数组的对象

  javascript对象都是关联数组,点访问和括号访问的差异

2、继承

3、属性访问错误  

var len = book && book.subtitle && book.subtitle.length;

这段代码的作用:避免属性访问错误的方法

  下面的情形给对象o设置属性p会失败:

    1、o中的属性p是只读的

    2、o的属性p时继承的,且是只读的:不能通过自有属性覆盖只读属性的继承属性

    3、

 

javascript权威指南笔记(第6章 对象)