对象的构造函数是指向创建对象的类的原型对象的构造函数。

类是一个Function, Function都有原型对象,原型对象的构造函数指向类的声明。

  1. function Person(){
  2.  
  3. }
  4.  
  5. Person.prototype.constructor === Person //true
  6.  
  7. var p1 = new Person();
  8.  
  9. p1.constructor === Person //true

a.prototype = {}  等价于 a.prototype = new object({});

此时 a.prototype.constructor 指向错误, 指到了object上

应该修正: a.prototype.constructor = a

原型继承typescript代码:

  1. class Person {
  2. constructor(private name: string) {
  3.  
  4. }
  5.  
  6. getName() {
  7. return this.name;
  8. }
  9. }
  10.  
  11. class Employee extends Person {
  12. constructor(name: string, private age: number) {
  13. super(name);
  14. }
  15.  
  16. getAge() {
  17. return this.age;
  18. }
  19. }

对应的js代码:

  1. var __extends = (this && this.__extends) || function (d, b) {
  2. for (var p in b)
  3. if (b.hasOwnProperty(p))
  4. d[p] = b[p];
  5. function __() { this.constructor = d; }
  6. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  7. };
  8. var Person = (function () {
  9. function Person(name) {
  10. this.name = name;
  11. }
  12. Person.prototype.getName = function () {
  13. return this.name;
  14. };
  15. return Person;
  16. }());
  17. var Employee = (function (_super) {
  18. __extends(Employee, _super);
  19. function Employee(name, age) {
  20. _super.call(this, name);
  21. this.age = age;
  22. }
  23. Employee.prototype.getAge = function () {
  24. return this.age;
  25. };
  26. return Employee;
  27. }(Person));

js继承摘要的更多相关文章

  1. js继承

    js继承有5种实现方式: 继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function ...

  2. js继承之call,apply和prototype随谈

    在js中,call,apply和prototype都可以实现对象的继承,下面我们看一个例子: function FatherObj1() { this.sayhello = "I am jo ...

  3. js继承精益求精之寄生式组合继承

    一.混合/组合继承的不足 上一篇JS继承终于混合继承,认真思考一下,发现其还是有不足之处的: 空间上的冗余:在使用原型链的方法继承父类的原型属性(Animal.prototype)的同时,也在子类的原 ...

  4. 老生常谈--Js继承小结

    一直以来,对Js的继承有所认识,但是认识不全面,没什么深刻印象.于是,经常性的浪费很多时间重新看博文学习继承,今天工作不是特别忙,有幸看到了http://www.slideshare.net/stoy ...

  5. Js继承小结

    Js继承小结 一直以来,对Js的继承有所认识,但是认识不全面,没什么深刻印象.于是,经常性的浪费很多时间重新看博文学习继承,今天工作不是特别忙,有幸看到了http://www.slideshare.n ...

  6. js继承实现

    JS实现继承可以分为:对象冒充和原型链继承 其中对象冒充又包括:临时变量,call 和 apply 临时变量方法: function Person(name,sex){ this.name = nam ...

  7. js继承之借用构造函数继承

    我的上一篇文章介绍了,原型链继承模式.但是单纯的原型链模式并不能很好地实现继承. 一.原型链的缺点 1.1 单纯的原型链继承最大的一个缺点,来自于原型中包含引用类型的值. 本来,我们没有通过原型链实现 ...

  8. js继承之原型链继承

    面向对象编程都会涉及到继承这个概念,JS中实现继承的方式主要是通过原型链的方法. 一.构造函数.原型与实例之间的关系 每创建一个函数,该函数就会自动带有一个 prototype 属性.该属性是个指针, ...

  9. js继承的常用方法

    写在前面的话:这篇博客不适合对面向对象一无所知的人,如果你连_proto_.prototype...都不是很了解的话,建议还是先去了解一下JavaScript面向对象的基础知识,毕竟胖子不是一口吃成的 ...

随机推荐

  1. 李洪强iOS开发之FMDB线程安全的用法

    // //  ViewController.m //  04 - FMDB线程安全的用法 // //  Created by 李洪强 on 2017/6/6. //  Copyright © 2017 ...

  2. Freemarker-2.3.22 Demo - No03_使用map绑定多个参数

    package No03_使用map绑定多个参数; import java.io.File; import java.io.FileOutputStream; import java.io.Outpu ...

  3. spring通过配置xml文件集成quartz定时器

    概述 Spring为创建Quartzde Scheduler.Trigger和JobDetail提供了方便的FactoryBean类,以便能够在Spring容器中享受注入的好处. 此外,Spring还 ...

  4. IPC介绍——10个ipcs例子

    IPC介绍——10个ipcs例子 semaphorearrays2010performancesystemaccess ipcs是一个uinx/linux的命令.用于报告系统的消息队列.信号量.共享内 ...

  5. EFM32 DMA/PRS例程

    /**************************************************************************//**  * @file  * @brief H ...

  6. Spring Cache 源码解析

    这个类实现了Spring的缓存拦截器 org.springframework.cache.interceptor.CacheInterceptor @SuppressWarnings("se ...

  7. vmware克隆Centos6.4虚拟机网卡无法启动问题

    vmware克隆Centos6.4虚拟机网卡无法启动问题                 2014-02-26 16:44:54 标签:老男孩培训 vmware克隆问题 网卡无法启动          ...

  8. mysql编译安装后各种常见错误集锦

    1.ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', sys ...

  9. PHP 获取图片中的器材信息

    function getExif($img){ $exif = exif_read_data($img, 'IFD0'); return array ( '文件名' => $exif['File ...

  10. HTML坦克大战学习01

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...