码迷,mamicode.com
首页 > 其他好文 > 详细

什么是原型?

时间:2014-11-19 07:07:22      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   color   sp   on   log   cti   bs   

原型对象实际上就是构造函数的一个实例对象,和普通的实例对象没有本质上的区别。可以包含特定类型的所有实例的共享属性或者方法。 这个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

 

什么是原型?

标签:style   io   ar   color   sp   on   log   cti   bs   

原文地址:http://www.cnblogs.com/ZH1132672711/p/4107072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!