代码信息来自于http://ejohn.org/apps/learn/。

继承是如何工作的

function Person(){} function Ninja(){}
Ninja.prototype = new Person(); var ninja = new Ninja();
console.log( ninja instanceof Ninja, "ninja自动接收Ninja.prototype里的属性" );
console.log( ninja instanceof Person, "也是来自Person.prototype" );
console.log( ninja instanceof Object, "也是来自and the Object prototype" );

本例可以很好表明继承机制和原型链。根本原理是实例化继承构造函数的原型,它使用__proto__访问上级。ninja继承Ninja,Ninja就是new Person(),继承Person.prototype,而Person.prototype,继承自最根本的Object.prototype。

构建我们自己的继承

function Person(){}
Person.prototype.getName = function(){ return this.name;
}; function Me(){ this.name = "John Resig";
}
Me.prototype = new Person(); var me = new Me();
console.log( me.getName());

me对象属性 = 实例化时自己的属性 + Me.prototype的属性 +Object.prototype的属性。

所以这个me对象拥有自己的name属性,getName函数。

转载于:https://www.cnblogs.com/winderby/p/4074154.html

javascript高级知识点——继承相关推荐

  1. JavaScript高级之继承

    ES6之前并没有给我们提供 extends 继承.我们可以通过构造函数+原型对象模拟实现继承,被称为组合继承. 2.1 call() 调用这个函数, 并且修改函数运行时的 this 指向 fun.ca ...

  2. javascript高级知识点——函数原型

    代码信息来自于http://ejohn.org/apps/learn/. 向函数的原型中添加方法 function Ninja(){} Ninja.prototype.swingSword = fun ...

  3. JavaScript高级第2天:定义函数的三种方式、函数的原型链结构、完整原型链、作用域以及作用域链、函数的四种调用模式、闭包、计数器、斐波那契数列优化、三种继承方式

    JavaScript高级第二天 01-定义函数的三种方式 1.函数声明 function:可以先调用再声明,因为预解析(把函数声明.变量声明进行提升) function fn() {//函数体conl ...

  4. 《javascript高级程序设计》笔记:内存与执行环境

    上一篇:<javascript高级程序设计>笔记:继承 近几篇博客都会围绕着图中的知识点展开 由于javascript是一门具有自动垃圾收集机制的编程语言,开发者不必担心内存的分配和回收的 ...

  5. javascript 高级程序设计_重读《JavaScript高级程序设计》

    最近自己在休假,打算闭门几天将<JavaScript高级程序设计>(第3版)这本良心教材再回顾一遍.目前自己进入前端领域两年多,现在重读并记录下这本教材的"硬"知识点 ...

  6. javaScript高级[二]

    javaScript高级[二] 函数 函数的定义和调用 函数的定义方式 函数的调用方式 this 函数内this指向 改变函数内部this指向 call()方法 apply()方法 bind()方法 ...

  7. 「万字总结」熬夜总结50个JS的高级知识点,全都会你就是神

    前言 大家好,我是林三心,基础是进阶的前提,上一篇,我给大家分享了我这一年来平时记录的工作中碰到的50个JS基础知识点,今天就给大家分享一下,我这一年来,工作中遇到的50个JS高级知识点吧!!! 知识 ...

  8. 尚硅谷JavaScript高级教程(javascript实战进阶)学习笔记

    前言 这个是我学习过程中的笔记,分享给大家,希望对大家有用. 学习内容是尚硅谷JavaScript高级教程(javascript实战进阶),这里是视频链接. 我在前面有两篇对于web前端HTML和CS ...

  9. JavaScript简餐——继承之原型链继承

    文章目录 前言 一.实现方式 二.继承实例 三.问题所在 1.引用值误修改 2.子类型实例化时无法给父类构造函数传参 四.总结 前言 写本<JavaScript简餐>系列文章的目的是记录在 ...

最新文章

  1. Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black
  2. wpf控件设计时支持(3)
  3. Kotlin和Java混合开发总结(基于Kotlin1.3.0版本)
  4. Rails 3:提高Ajax应用速度
  5. java中的字符,字符串,数字之间的转换
  6. 初识Node.js之Node.js与java作为后台服务器的对比
  7. 开关电源中的磁性元件书籍_总结丨PFC开关电源的效率优化措施
  8. 视频教程-CCNA视频----从零开始学CCNA实验视频课程(加强版)-思科认证
  9. http系列---Apache AB测试工具
  10. 上传图片计算机没有桌面,电脑桌面消失了!
  11. C#将日期转化成英文
  12. 【python小程序】蜜雪冰城小卖铺
  13. ubuntu中vim编辑模式退格键无法删除,方向键乱入ABCD解决方法
  14. 【转】AI芯片:寒武纪NPU设计分析(DianNao)
  15. 10个顶级商业思维:如何升级思维模式突破认知,让自己快速成长
  16. 蓝牙音箱电路板原理图_一文看懂音响电路图及工作原理
  17. 用经典的模拟退火算法求解30城市小规模的TSP问题
  18. EST | 西湖大学鞠峰组提出表型宏基因组学用于超广谱抗生素耐药组的高通量环境检测...
  19. Jmeter正则表达式提取器的使用
  20. [转载]快速记忆日语单词,一年考过1级!

热门文章

  1. mysql主从不同步不报错_MySQL主从不同步解决
  2. 关于numpy mean函数的axis参数
  3. TensorFlow中的多线程
  4. android olhttp 缓存,android okhttp 缓存设置
  5. 公众号向特定用户主动推送消息_公众号助手——消息不仅可以群发,还不限制次数!...
  6. php转移单引号,php如何转义单引号
  7. mysql使用条件限制乐观锁_使用Mysql乐观锁解决并发问题
  8. python 网页版笔记_系统学习下python网络爬虫 笔记一
  9. 安装python缺少dll_python报错DLL load failed:找不到模块怎么解决?
  10. 数据库连接php_php 连接 数据库