JavaScript面向对象编程

2017-07-25 14:40:48 611浏览

面相对象有三大基本特征: 封装、继承、多态


【封装】


有两大好处。第一就是便于复用。  就像我们家里的微波炉一样,它烤完了一个面包又一个面包。它可以反复使用上万次。而你不需要每次去买一台新微波炉。这就叫做可复用。


第二就是隐藏细节,提升用户体验。拿苹果本来举例子,苹果的设计特点就是简洁大方。让人看着舒服。至于内部的构造如何,我们无从得知,也不需要知道。所有的细节都被一个银灰色的金属外壳封装了起来。


封装在代码层面的应用是很多的,举个例子:


var r01 = Math.random();

var r02 = Math.random();

var r03 = Math.random();

var r04 = Math.random();

 

//变量r01、r02、r03、r04都是随机数字

//我们利用random函数得到了一个随机数,但我们不关心实现的细节

【继承】


js的继承大致分为5种情况


继承的方式一


function Father(){

     this.money = 1000000;

}

function Son(){

     this.p = Father;

     this.p();

     delete this.p;

}

var s = new Son();


继承方式二:


function Father(){

     this.money = 1000000;     

}

function Son(){

     Father.call(this);

}

 

但有时候参数太多:

function Father(p1,p2,p3,p4){

     this.money = 1000000;

}

function Son(v1,v2,v3,v4){

     Father.call(this, v1, v2, v3, v4);

}


继承方式三:


function Father(p1,p2,p3,p4){

     this.money = 1000000;

}

function Son(v1,v2,v3,v4){

     Father.apply(this, [v1, v2, v3, v4]);

}

可以再改造一下:

function Son(){

     Father.apply(this, arguments);

}

 

利用prototype,继承方式四:


function Father(){    }

Father.prototype.talk = function(){   }

function Son(){    }

Son.prototype = new Father();

 

最常见的混合继承;


function Father(){

     

}

Father.prototype.liaomei = function(){

 

}

Son.prototype = new Father();

function Son(){

     Father.apply(this,arguments);    

}

 

【多态】


JS中没有多态的概念,多态是标准的面相对象语言例如JAVA、C++等编程语言,由于变量定义及对象有严格的类型区分,才导致出现了多态。JS由于是弱类型语言,因此不存在这一问题,所以没有

标签: 扣丁学堂

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号