博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的JavaScript之继承(二) 构造函数继承
阅读量:6001 次
发布时间:2019-06-20

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

引言

创建即继承---构造函数继承

何为构造函数?如果你还不清楚构造函数和普通函数的区别,那请看

构造函数继承

构造函数继承的核心 是 call()apply() 的使用,通过这个方法,改变函数的作用环境.

function SuperClass(name){    this.name =name;    this.book = ['c','java','htnl']    this.getBook =function(){        return this.book;    }}//为父类添加方法SuperClass.prototype.getName =function(){    return this.name;}//声明子类function SubClass(name){    SuperClass.call(this,name)}var a = new SubClass('demongao');var b = new SubClass('gsc');a.book.push("cccc");console.log(a.book,a.name); //["c", "java", "htnl", "cccc"] "demongao"console.log(b.book,b.name); //["c", "java", "htnl"] "gsc"console.log(a.getBook()); //["c", "java", "htnl", "cccc"]console.log(a.getName()) //TypeError

       子类通过 SuperClass.call(this,name) 将子类中的变量在父类中执行了一遍,由于父类中是给 this 绑定属性的,因此子类自然也就继承了父类的共有属性.

       由于这种类型的继承没有涉及原型prototype,所以父类的原型方法自然不会被子类继承,而如果想被子类继承就必须要放在构造函数中,这样创建出来的每个实例都会单独拥有一份而不能共用,这就违背了代码复用的原则


下一节讲解 组合继承 ,它具备上两种继承式的优点

参考

  • JavaScript 设计模式 --- 张容铭 著

本人对类式继承的一点点理解,若是那里解释的有问题,请多指教,谢谢!

转载地址:http://dodmx.baihongyu.com/

你可能感兴趣的文章
如何成为强大的程序员?
查看>>
How To: 用 SharePoint 计算列做出你自己的KPI列表
查看>>
Visual Studio下使用jQuery的10个技巧
查看>>
web服务器工作原理及http协议通信
查看>>
数据库查询某个字段值的位数 语法
查看>>
java file 文件操作 operate file of java
查看>>
WPF获取路径解读
查看>>
【实战HTML5与CSS3】用HTML5和CSS3制作页面(上)
查看>>
Android : 如何在WebView显示的页面中查找内容
查看>>
数字信号处理 基础知识 对比回顾
查看>>
分享个人Vim型材
查看>>
配置算法(第4版)的Java编译环境
查看>>
本学习笔记TCP/IP传输协议
查看>>
配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp
查看>>
201215-03-19---cocos2dx内存管理--具体解释
查看>>
swift菜鸟入门视频教程-12-21讲
查看>>
CSharpGL(11)用C#直接编写GLSL程序
查看>>
仰视源代码,实现memcpy
查看>>
HTTP gzip和deflate的几点区别
查看>>
{Repeater控件} Repeater控件的用法流程及实例
查看>>