mackxu
子曰:学而时习之,不亦说乎?

可以通过对象直接量、关键字new和(E5)Object.create()函数来创建对象

1. 对象直接量

由若干名/值对组成的映射表

属性名可以是JS标识符也可以是字符串直接量(包括空空字符串)

属性值可以是任意类型的JS表达式,表达式的值(原始值也可以是对象值)就是这个属性的值

2. 通过new创建对象

3. 原型

每一个对象都从原型继承属性。

没有原型的对象:Object.prototype

创建对象

原型

对象直接量创建对象

Object.prototype

通过new创建对象

构造函数的prototype属性

通过Object.create()创建对象

使用第一个参数

 

4. Object.create()

创建一个新对象,其中第一个参数是这个创建对象的原型。第二个可选参数,用以对对象的属性进行进一步描述。

Object.create(null);     //不继承任何属性和方法

Object.create(Object.prototype);   //和{}、new Object()一样

//返回了一个继承自原型对象p的属性的新对象
function inherit(p) {
    if(p==null) throw TypeError();    //p是一个对象,但不能是null
    if(Object.create) {                //如果Object.create属性存在
        return Object.create(p);
    }
    var type = typeof p;            //否则进行进一步检测
    if(type !== 'object' && t !== 'function')    throw TypeError();
    function f() {}                    //定义一个空构造函数
    f.prototype = p;                //继承对象p的属性
    return new f();                    //返回p的子对象f(继承对象)
}

 

posted on 2013-02-28 09:07  mackxu  阅读(227)  评论(0编辑  收藏  举报