javascript面向对象的理解和示例
日期:2018-07-12
来源:程序思维浏览:1096次
今天和大家说一下我对面向对象的理解和代码示例,给大家讲一下常用的面向对象写法和继承。

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
其实面向对象是一个思维模式,虽然他是抽象的,但是咱们可以给他具体化。比如:我要去中关村攒电脑。咱们拿这件事来做比喻。
如果是面向过程的思维是:我先到中关村然后到处去问买什么显卡好,买什么内存好,买什么硬盘好,买什么显示器好等等。
如果是面向对象的思维是:我在去买电脑之前先选好显卡,内存,硬盘,显示器等等还有价格,都规划好之后再去购买。
两个思维最大的差异就是面向过程:先行动后思考;面向对象:先思考再行动。
那么从两个差异性的思维就可以看出来,如果开发小型简单的项目可以采用面向过程编程,如果是大型复杂的项目就要采用面向对象的编程模式。
javascript面向对象的设计模式有5种,咱们常用的是:
混合的JSON/构造函数/原型方式
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
}
Car.prototype={
showColor :function() {
alert(this.color);
},
showName:function(){
alert(this.doors);
}
}
var oCar1 = new Car("red",4,23);
alert(oCar1.drivers); //输出 "Mike,John,Bill"
优点:此种方式即符合语义又可以扩展新的属性和方法,代码封装性好,易读简洁。
缺点:暂没发现。
应用场景:逻辑比较复杂的程序。
对象的继承如何使用呢?
function A(){
this.abc=12;
}
A.prototype={
show:function(){
alert(this.abc);
}
}
//b继承a的东西
function B(){
A.call(this);//相当于this就是new B(),继承属性
}
//继承方法
//B.prototype=A.prototype;
B.prototype={
fn:function(){
alert('abc');
}
}
var objB=new B();
/*objB.show();
objB.fn();*/
var objA=new A();
objA.fn();
好啦,javascript面向对象的理解和示例,今天就讲到这里大家应该都明白了吧!

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
其实面向对象是一个思维模式,虽然他是抽象的,但是咱们可以给他具体化。比如:我要去中关村攒电脑。咱们拿这件事来做比喻。
如果是面向过程的思维是:我先到中关村然后到处去问买什么显卡好,买什么内存好,买什么硬盘好,买什么显示器好等等。
如果是面向对象的思维是:我在去买电脑之前先选好显卡,内存,硬盘,显示器等等还有价格,都规划好之后再去购买。
两个思维最大的差异就是面向过程:先行动后思考;面向对象:先思考再行动。
那么从两个差异性的思维就可以看出来,如果开发小型简单的项目可以采用面向过程编程,如果是大型复杂的项目就要采用面向对象的编程模式。
javascript面向对象的设计模式有5种,咱们常用的是:
混合的JSON/构造函数/原型方式
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
}
Car.prototype={
showColor :function() {
alert(this.color);
},
showName:function(){
alert(this.doors);
}
}
var oCar1 = new Car("red",4,23);
alert(oCar1.drivers); //输出 "Mike,John,Bill"
优点:此种方式即符合语义又可以扩展新的属性和方法,代码封装性好,易读简洁。
缺点:暂没发现。
应用场景:逻辑比较复杂的程序。
对象的继承如何使用呢?
function A(){
this.abc=12;
}
A.prototype={
show:function(){
alert(this.abc);
}
}
//b继承a的东西
function B(){
A.call(this);//相当于this就是new B(),继承属性
}
//继承方法
//B.prototype=A.prototype;
B.prototype={
fn:function(){
alert('abc');
}
}
var objB=new B();
/*objB.show();
objB.fn();*/
var objA=new A();
objA.fn();
好啦,javascript面向对象的理解和示例,今天就讲到这里大家应该都明白了吧!
- 上一篇:WEB前端高频面试题每天5道题第十波
- 下一篇:WEB前端高频面试题第十一波
精品好课