JS常见的继承方式
来源:互联网 发布:ubuntu浏览器不能上网 编辑:程序博客网 时间:2024/05/16 12:13
1.利用原型链prototype;
function person(){ this.name = 'person';}person.prototype.show = function(){ return this.name;}function man(){ this.subname = 'man';}man.prototype = new person();var Man = new man();Man.show();console.log(Man.name);console.log(Man.subname);
这种方法的弊端:1.父类的属性不能是引用类型,不然他的子类公用这个应用类型,作修改的时候就会影响了;2.子类不能向父函数传递参数。
2.利用call(),伪造对象的方法;
function person(name,age){ this.name = name; this.age = age;}function man(name,age){ person.call(this,name,age); //这里就是伪造成person的一个事例}var Man = new man('wozien',12);console.log(Man.name);console.log(Man.age);
3.利用apply(),和call区别在于参数传递方式;
function person(name,age){ this.name = name; this.age = age;}function man(name,age){ person.apply(this,[name,age]); //这里就是伪造成person的一个事例}var Man = new man('wozien',12);console.log(Man.name);console.log(Man.age);
第2,3种方法解决了第1中的弊端,但是要是继承父类方法的话,子类都要重新分配内存,浪费资源,所以也是很少单独使用的。
4.组合call+prototype,最常用的一种方式;
function person(name){ this.name = name;}person.prototype.showName = function(){ return this.name;}function man(name,age){ person.call(this,name); this.age = age; //这里就是伪造成person的一个事例}man.prototype = new person();man.prototype.showAge = function(){ return this.age;}var Man = new man('wozien',12);Man.showName(); //wozienMan.showAge(); //12
这是js中继承最常用的;把子类实例独有的属性(包括常用和引用类型)利用call方式继承,方法什么的写到原型对象中,利用原型链进行继承。
0 0
- JS常见的继承方式
- 【js基础】javascript中几种常见的继承方式。
- JS的继承方式
- JS的继承方式
- js的继承实现方式
- js继承的实现方式
- JS继承的实现方式
- js继承的方式总结
- JS继承的实现方式
- js常用的继承方式
- JS的多种继承方式
- js的多种继承方式
- JS继承的实现方式
- JS继承的实现方式
- JS继承的实现方式
- JS继承的实现方式
- js中继承的实现方式
- js的几种继承方式
- Android自定义控件实战——下拉刷新控件终结者:PullToRefreshLayout
- Python os 模块介绍
- UART0串口编程系列之前奏篇
- Java异常机制
- java设计模式 实验一-简单工厂模式
- JS常见的继承方式
- 新版本itunes如何设置iphone铃声
- android 百度地图定位辅助教程
- Qt/C++项目实战模仿酷狗之播放列表实现(一)
- Android 自定义PopupWindow指定位置或给定View坐标弹出
- rtems bbb板uart驱动编写
- Android 初识Retrofit
- 欢迎使用CSDN-markdown编辑器
- jQuery中获取节点