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

8.原型

时间:2015-01-28 12:55:54      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

在JavaScript中,函数是一种值。而原型(prototype)是函数的一个属性,这个属性的值是一个对象,下面看一个构造函数:

function Gadget(name,color){
    this.name=name;
    this.color=color;
    this.whatAreYou=function(){
        terutn ‘I am a  ‘+this.color+‘ ‘+this.name; 
    }
}

prototype和name、color、whatAreYou都属于Gadeget的属性。下面来给上面的构造函数的原型属性赋值,两种方法结果一样:

Gadget.prototype.price = 100;
Gadget.prototype.rating = 3;
Gadget.prototype.getInfo = function(){
   return ‘Rating: ‘+this.rating+‘,price: ‘+this.price;
}

//等价于

Gadget.prototype={
    price:100,
    rating:3,
    getInfo:function(){
       return ‘Rating: ‘+this.rating+‘,price: ‘+this.price;
    }
}

当我们使用构造器Gadeget()来新建一个newtoy对象,并访问rating属性的时候。JavaScript先会查询newtoy对象的所有属性,但却找不到rating的属性。接下来,脚本引擎会去查询用于创建当前对象的构造器函数的原型,等价于我们直接访问newtoy.constructor.prototype。如果在原型中找到了该属性,就立即使用该属性。

var newtoy = new Gadeget(‘webcam‘,‘black‘);

newtoy.name    //webcam

newtoy.rating    //3

因为构造函数的原型属性值本身是一个对象,那么意味着它也有一个构造器方法,而这个构造器方法又会有自己的原型,这样就形成了原型链。

 

8.原型

标签:

原文地址:http://www.cnblogs.com/zhongxinWang/p/4255294.html

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