Javascript基于对象三大特性(封装性、继承性、多态性)

前端之家收集整理的这篇文章主要介绍了Javascript基于对象三大特性(封装性、继承性、多态性)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation)、继承(inheritance )和多态(polymorphism )。只不过实现的方式不同,其基本概念是差不多的。其实除三大特征之外,还有一个常见的特征叫做抽象(abstract),这也就是我们在一些书上有时候会看到面向对象四大特征的原因了。

一、封装性

封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。 案例:

小结: 1、JS对象可以通过对象冒充,实现多重继承 2、Object类是所有Js类的基类

三、多态性

JS的函数重载 这个是多态的基础,在之前的Javascript入门已经说过了,JS函数不支持多态,但是事实上JS函数是无态的,支持任意长度,类型的参数列表。如果同时定义了多个同名函数,则以最后一个函数为准。 案例:

1、多态基本概念 多态是指一个引用(类型)在不同情况下的多种状态。也可以理解成:多态是指通过指向父类的引用,来调用在不同子类中实现的方法。 案例:

方法[给动物喂食物] } //原型法添加成员函数 Master.prototype.Feed=function (animal,food){ window.alert("给"+animal.name+" 喂"+ food.name); } function Food(name){ this.name=name; } //鱼类 function Fish(name){ this.food=Food; this.food(name); } //骨头 function Bone(name){ this.food=Food; this.food(name); } function Peach(name){ this.food=Food; this.food(name); } //动物类 function Animal(name){ this.name=name; } //猫猫 function Cat(name){ this.animal=Animal; this.animal(name); } //狗狗 function Dog(name){ this.animal=Animal; this.animal(name); } //猴子 function Monkey(name){ this.animal=Animal; this.animal(name); } var cat=new Cat("猫"); var fish=new Fish("鱼");

var dog=new Dog("狗");
var bone=new Bone("骨头");

var monkey=new Monkey("猴");
var peach=new Peach("桃");

//创建一个主人
var master=new Master("zs");
master.Feed(dog,bone);
master.Feed(cat,fish);
master.Feed(monkey,peach);

多态利于代码的维护和扩展,当我们需要使用同一类树上的对象时,只需要传入不同的参数就行了,而不需要再new 一个对象。

以上就是Javascript基于对象三大特性,希望对大家的学习有所帮助。

猜你在找的JavaScript相关文章