博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js继承面试速记(内容抄自高程三)
阅读量:6458 次
发布时间:2019-06-23

本文共 1714 字,大约阅读时间需要 5 分钟。

  • 原型链

    function SuperType(){    this.property = true;}SuperType.prototype.getSuperValue = function(){    return this.property;}function SubType(){    this.subproperty = false;}// 通过将原型指向另一个类型的事例来继承SubType.prototype = new SuperType();复制代码
  • 借用构造函数
  • function SuperType(){    this.colors = ['red','blue','green'];}function SubType(){    // 继承了SuperType    SuperType.call(this)}复制代码

  • 组合继承(伪经典继承)
  • function SuperType(name){    this.name = name;    this.colors = ['red','blue','green']}SuperType.prototype.sayName = function(){    alert(this.name)}function SubType(name,age){    // 继承属性    SuperType.call(this,name)    this.age = age;}// 继承方法SubType.prototype = new SuperType();SubType.prototype.constructor = SubType;复制代码

  • 原型式继承
  • function object(o){    function F(){}    F.prototype = o;    return new F();}var person = {    name:"Nicholas",    friends:["Shelby","Court","Van"]};// 实现继承var anotherPerson = object(person);复制代码

  • 寄生式继承
  • function createAnother(original){    var clone = object(original)  //原型式继承中的object方法    clone.sayHi = function(){        alert('hi')    };    return clone;}var person = {    name:'Nicholas',    friends:['Shelby','Court','Van']}// 实现继承var anotherPerson = createAnother(person)复制代码

  • 寄生组合式继承
  • function inheriPrototype(subType,superType){    var prototype = object(supeType.prototype);   // 继承方法    prototype.constructor = subType;    subType.prototype = prototype;}function SuperType(name){    this.name = name;    this.colors = ['red','blue','green'];}superType.prototype.sayName = function(){    alert(this.name);}function SubType(name,obj){    // 继承属性    SuperType.call(this,name);    this.age = age;}// 继承方法inheritPrototype(SubType,SuperType)复制代码

转载于:https://juejin.im/post/5ac249f76fb9a028cb2dccb9

你可能感兴趣的文章
git代码冲突
查看>>
利用android studio 生成 JNI需要的动态库so文件
查看>>
poll
查看>>
解析查询 queryString 请求参数的函数
查看>>
学生选课系统数据存文件
查看>>
我的毕设总结所用的技术和只是要点 基于stm32F4的AGV嵌入式控制系统的设计
查看>>
JMeter—断言
查看>>
C++的新类创建:继承与组合
查看>>
odoo 权限设置
查看>>
asp操作access提示“无法从指定的数据表中删除”
查看>>
git bash 风格调整
查看>>
bzoj4589 Hard Nim
查看>>
java实现pdf旋转_基于Java实现PDF文本旋转倾斜
查看>>
python time库3.8_python3中datetime库,time库以及pandas中的时间函数区别与详解
查看>>
贪吃蛇java程序简化版_JAVA简版贪吃蛇
查看>>
poi java web_WebPOI JavaWeb 项目 导出excel表格(.xls) Develop 238万源代码下载- www.pudn.com...
查看>>
oracle报1405,【案例】Oracle报错ORA-15054 asm diskgroup无法mount的解决办法
查看>>
linux 脚本map,Linux Shell Map的用法详解
查看>>
如何在linux系统下配置共享文件夹,如何在windows和Linux系统之间共享文件夹.doc
查看>>
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>