首页 > 代码库 > 8.原型
8.原型
在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 //webcamnewtoy.rating //3
因为构造函数的原型属性值本身是一个对象,那么意味着它也有一个构造器方法,而这个构造器方法又会有自己的原型,这样就形成了原型链。
8.原型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。