码迷,mamicode.com
首页 > 编程语言 > 详细

javascript之构造器

时间:2015-10-15 23:43:48      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

构造器

除了通过特定的模式来创建对象,构造函数也是很有用的方式——对于新创建的对象,它自动设置了原型对象。

这个原型对象是存放在那ConstructorFunction.prototype的属性上。

比如,我们可能会重写上一个例子,通过使用a构造器函数来实例对象b,c。这样,对象a的角色由Foo.prototype来扮演:

function Foo( y ){
    this.y = y;
}

Foo.prototype.x = 10;
Foo.prototype.calculate = function( z ){
    return this.x + this.y + z;
}

var b = new Foo( 20 );
var c = new Foo( 30 );

b.calculate( 30 ); //60
c.calculate( 40 );//80

console.log(
    b.__proto__ === Foo.prototype; //true
    c.__proto__ === Foo.prototype; //true

    b.constructor === Foo; //true
    c.constructor === Foo; //true
    Foo.prototype.constructor === Foo; //true;

    b.calculate === b._proto__.calculate; //true;
    b.__proto__.calculate === Foo.prototype.calculate; //true;
);

这段代码可能说明了如下图的关系:

 

技术分享

这副图再次说明了每个对象有唯一的原型对象。构造函数Foo同样也有它自身的__proto__,这个__proto__引用了Function.prototype, 

并且接下来通过它的__proto__属性赋值给了Object.prototype。此外,Foo.prototype是Foo的一个外部属性,同时也被映射到对象b,

c的原型属性上。

 

javascript之构造器

标签:

原文地址:http://www.cnblogs.com/branches/p/4883845.html

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