面向对象高级2-继承
来源:互联网 发布:互力微信淘客软件 编辑:程序博客网 时间:2024/05/01 16:02
继承
继承:var a = { name:'anikin'};
b = a; // 把a这个对象赋给b这个对象
b.name = 'jack';
alert(a.name); // 修改了a的值
b = {};
for(var attr in a){
b[attr] = a[attr];
}
b.name = 'jack';
alert(a.name); // anikin 不会修改a对象的值,这个就是拷贝继承的核心原理
子类不影响父类,子类继承父类的一些功能(代码复用)
属性的继承就是调用父类的构造函数,用call、apply的方法改变this指向
方法的继承: 方法继承;for in 拷贝继承(jquery也是通过拷贝继承实现的);
除了拷贝继承之外还有类式继承,原型继承。function CreatePerson(name,sex){ //父类
this.name = name;
this.sex = sex;
}
CreatePerson.prototype.showName = function(){
alert( this.name );
};
var p1 = new CreatePerson('小明','男'); // 注意:创建对象部分一定要放在window.onload中
//p1.showName();
function CreateStar(name,sex,job){ //子类
CreatePerson.call(this,name,sex);
this.job = job;
}
extend( CreateStar.prototype , CreatePerson.prototype );
CreateStar.prototype.showJob = function(){
};
var p2 = new CreateStar('黄晓明','男','演员');
p2.showName();
// extend这个函数不完整,目前只是json格式。如果是其他格式还需要自行在封装,可以参考jquery
function extend(obj1,obj2){ //
for(var attr in obj2){
obj1[attr] = obj2[attr];
}
}
继承在实际开发中应用的不太多;
组件开发:多组对象
组件类似兄弟之间,不同于继承的是。
1:当参数不写的时候报错 -- undefined
配置参数和默认参数,当有配置不存在的时候走默认;注意二者的的key值必须相同,才能覆盖
默认参数的属性一定要跟配置参数相同
---用配置去覆盖默认
2:当参数特别多的时候顺序对不上--json解决
只要把这个理论掌握的很好,在实际的开发中才会实现想要的效果。
写任何面向对象的组件的时候先把框架打起来
比较正规的组件写法:将配置参数,方法,事件三者分离。主要分为:
ul组件:效果形的
功能组件、
组件开发中的事件是自定义事件:有利于多人协作开发,如何去挂载自定义事件与
自定义事件函数
自定义事件重点不在事件上,而是在函数身上。
让函数能够具备事件的某些特性,就叫做自定义事件。
1.事件有个特点就是不会覆盖,因此只要函数有事件的特性一样,就利于维护了
2 自定义事件还是函数,只是互相不会再覆盖了;
主动触发自定义事件 fireEvent() // 需要做映射 addEvent() 多层的映射
- 面向对象高级2-继承
- 高级面向对象 之 继承(拷贝继承)
- JavaScript高级程序设计【面向对象-继承】
- 8面向对象高级编程--->多重继承
- 高级面向对象之 类式继承
- 高级面向对象 之 原型继承
- 面向对象-2继承
- Java面向对象高级--继承的基本实现--extends
- Java面向对象高级--继承的进一步研究
- Java-面向对象(高级篇)--继承的基本概念
- Java-面向对象(高级篇)--继承的进一步研究
- 继承的基本概念(Java面向对象高级篇)
- JavaScript高级程序设计之面向对象的程序设计之继承之借用构造函数第6.3.2讲笔记
- 第6章 面向对象高级2
- JavaScript面向对象编程高级2
- 面向对象高级( 随手记-2)
- 面向对象高级(一)
- 面向对象高级(二)
- js兼容实现图片的预加载
- mysql left join,right join,inner join用法分析
- AVPlayer的基本使用
- 网易云短信验证
- canvas-jCanvaScript
- 面向对象高级2-继承
- 调用系统设备的代码
- CSS3形变——transform与transform-origin画时钟
- js运动框架
- angulary4
- angular 5
- angular 6
- laravel之 Request and response
- php string9