首页 > 代码库 > 什么是原型?

什么是原型?

原型对象实际上就是构造函数的一个实例对象,和普通的实例对象没有本质上的区别。可以包含特定类型的所有实例的共享属性或者方法。 这个prototype的属性值是一个对象(属性的集合),默认的只有一个叫做constructor的属性,指向这个函数本身。  

function Cat(name,color){

        this.name = name;

        this.color = color;

        this.type = "猫科动物";

        this.eat = function(){alert("吃老鼠");};

    }

生成实例:  

    var cat1 = new Cat("大毛","黄色");

    var cat2 = new Cat ("二毛","黑色");

    alert(cat1.type); // 猫科动物

    cat1.eat(); // 吃老鼠  

 

type属性和eat()上下是一样重复了,所以他会占据大量的空间,因此,为了让type属性和eat()方法在内存中只生成一次 然后所有实例都指向那个内存地址,引出了原型。

 

constructor 意思是指 向指向创建当前对象的构造函数

 

// 等价于 var foo = new Array(1, 56, 34, 12);

        var arr = [1, 56, 34, 12];

        console.log(arr.constructor === Array); // true

 

什么是原型?