javascript中实现继承的三种方式(一看就懂)
来源:互联网 发布:python 移除模块 编辑:程序博客网 时间:2024/05/16 17:26
1、原型继承
// 父类 function Persion(name,age){ this.name = name; this.age = age; } // 父类的原型对象属性 Persion.prototype.id = 10; // 子类 function Boy(sex){ this.sex = sex; } // 继承实现 Boy.prototype = new Persion('c5',27); var b = new Boy(); alert(b.name)// c5 alert(b.id)//10
这种原型继承的特点:既继承了父类的模板,又继承了父类的原型对象。优点是继承了父类的模板,又继承了父类的原型对象,缺点就是父类实例传参,不是子类实例化传参,不符合常规语言的写法。
2、类继承(借用构造函数的方式继承)
// 父类 function Persion(name,age){ this.name = name; this.age = age; } // 父类的原型对象属性 Persion.prototype.id = 10; // 子类 function Boy(name,age,sex){ //call apply 实现继承 Persion.call(this,name,age); this.sex = sex; } var b = new Boy('c5',27,'男'); alert(b.name)// c5 alert(b.id)//undinfind 父类的原型对象并没有继承
这种原型继承的特点:继承了父类的模板,不继承了父类的原型对象。优点是方便了子类实例传参,缺点就是不继承了父类的原型对象
3、混合继承(原型继承和类继承)
// 父类 function Persion(name,age){ this.name = name; this.age = age; } // 父类的原型对象属性 Persion.prototype.id = 10; // 子类 function Boy(name,age,sex){ //call apply 实现继承 Persion.call(this,name,age); this.sex = sex; } // 原型继承实现 参数为空 代表 父类的实例和父类的原型对象的关系了 Boy.prototype = new Persion(); var b = new Boy('c5',27,'男'); alert(b.name)// c5 alert(b.id)//10
这种原型继承的特点:既继承了父类的模板,又继承了父类的原型对象。优点方便了子类实例传参,缺点就是Boy.pertotype = new Persion() 函数又实例一次,函数内部变量又重复实例一次,大程序时候会很好性能。
1 0
- javascript中实现继承的三种方式(一看就懂)
- 实现JavaScript中继承的三种方式
- 实现JavaScript中继承的三种方式
- Javascript 实现继承的三种方式
- 一看就懂的设计模式(三 ,外观模式)
- javascript中实现对象继承的五种方式详解
- JavaScript中实现继承的几种方式
- JavaScript中实现继承的几种方式
- JS高级---继承(一看就会)
- [置顶]Java中 实现多线程成的三种方式(继承,实现,匿名内部类)
- JavaScript实现继承的五种方式
- javascript 实现继承的几种方式
- Javascript实现继承的6种方式
- javascript实现继承的几种方式
- javaScript实现继承的5种方式
- javascript实现继承的几种方式
- Javascript实现继承的几种方式
- javascript实现继承的几种方式
- CentOS7下安装tomcat及操作
- mysql-5.7.17-winx64的安装配置
- h5遇到的问题
- 常用Java设计模式系列(1)- 单例模式
- Orcl分页查询
- javascript中实现继承的三种方式(一看就懂)
- wex5中win10操作系统studio中新建.w向导或其他的编辑窗口显示不全
- Nginx + Tomcat + HTTPS极速配置
- ssm ssh xml文件的约束文件
- Windows Socket编程之TCP实现大文件的传输
- 前台页面报错org.apache.jasper.JasperException
- chorme和FireFox浏览器不显示按钮的问题
- Android开发入门之熟悉开发环境
- SVN之——SVN 版本管理系统的安装(基于CentOS6.5 + Subversion + Apache + Jsvnadmin)