javascript并不像java.c++一样,它是不带有面向对象的三大特征的,但它可以模拟面向对象的三大特征
首先我们来说说关于javascript中的基础
1.javascript中的创建对象方式有两种
(1)初始化器创建
var a={
name:"阿通";
shout:function(){
alert("出来吧");
}
}
初始化器说以键值对的方式创建方法和属性的
(2)构造函数方式
function Dog(name,age){
this.name=name;
this.age=age;
this.shout=function(){
alert("啊啊")
}
}
注意要加上this
2.对象属性定义
function C(){
var a="大王"//私有属性
this.b="阿拉丁"//对象属性
}
C.classpro="小王"//类属性,类似于java中的static
3.对象方法定义
function D(){
var af=function(){};//私有方法
this.bf=function(){};//对象方法
}
D.function(){};//类方法
4.javascript中的封装
没啥好说的
5.javascript中的继承
(1)apply():实现父类的方法和属性
function Animal(name){
this.name=name;
this.say=function(){
alert(“名字”+this.name)
}
}
function Dog(name){
Animal.apply(this.[name]);//apply()继承只是把父类的属性和方法搬给子类而已
}
var jack=new Dog("笨蛋");//注意,这里的var jack是属于Dog类的
(1)prototype():实现原型的继承
function Animal(name){
this.name=name;
this.say=function(){
alert(“名字”+this.name)
}
}
function Dog(name){
Animal.apply(this.[name]);//apply()继承只是把父类的属性和方法搬给子类而已
}
Dog.prototype=new Animal;//将Dog的原型给new Animal
var jack=new Dog("笨蛋");//注意,这里的var jack是属于animal类的
6.javascript中的多态
function Animal(){
this.say=function(){
alert("我是动物");
};
}
function Dog(){
this.say=function(){
alert("我是狗");
};
}
Dog.prototype=new Animal();
function Cat(){
this.say=function(){
alert("我是猫");
};
}
Cat.prototype=new Animal();
function say(animal){
if(animal instanceof Animal){
animal.say();
}
}
var dog=new Dog();
var cat=new Cat();
say(dog);
say(cat);
大家应该看懂了吧,这多态就是java中的向上转型