专栏名称: JavaScript
面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享。
目录
相关文章推荐
51好读  ›  专栏  ›  JavaScript

详解JS构造函数方法与原型prototype上的方法

JavaScript  · 公众号  · Javascript  · 2017-02-19 11:35

正文

请到「今天看啥」查看全文


{

console . log ( 'Hello, my name is: ' + this . name );

};

var a1 = new A ( 'a1' );

var a2 = new A ( 'a2' );

a1 . sayHello ();

a2 . sayHello ();

var b1 = new B ( 'b1' );

var b2 = new B ( 'b2' );

b1 . sayHello ();

b2 . sayHello ();

我们首先写了两个构造函数,第一个是 A ,这个构造函数里面包含了一个方法 sayHello ;第二个是构造函数 B ,
我们把那个方法 sayHello 写在了构造函数 B prototype 属性上面.

需要指出的是,通过这两个构造函数 new 出来的对象具有一样的属性和方法,但是它们的区别我们可以通过下面的一个图来说明:

我们通过使用构造函数 A 创建了两个对象,分别是 a1 , a2 ;通过构造函数 B 创建了两个对象 b1 , b2 ;我们可以发现 b1 , b2 这两个对象的那个 sayHello 方法
都是指向了它们的构造函数的 prototype 属性的 sayHello 方法.而 a1 , a2 都是在自己内部定义了这个方法.
定义在构造函数内部的方法,会在它的每一个实例上都克隆这个方法;定义在构造函数的 prototype 属性上的方法会让它的所有示例都共享这个方法,但是不会在每个实例的内部重新定义这个方法.
如果我们的应用需要创建很多新的对象,并且这些对象还有许多的方法,为了节省内存,我们建议把这些方法都定义在构造函数的 prototype 属性上







请到「今天看啥」查看全文