js面向对象编程

      java面向对象语言具有封装,继承,多态特性,而js也是一门面向对象的语言,可以模仿这个形式,然后使用面向对象思维进行编程。封装和继承的本质就是控制权限的使用。

封装对应着private权限,继承对应着protec和publict权限。

      在js中类的定义是函数:

  (1)  function people(){};

   (2)var people=function(){};

   (3)var people=new Function(){}

   对js权限的理解:带this指针是public,通过prototype原型定义的是protect,没有带的是private。

   var people=function(){

        var  name="";//private

//对name属性进行封装

      this.setName=function(_name){

    name=_name;

     }

    this.getName=function(){

return name;

}

}

  people.prototype.say=function(){

alert("我的名字是:" +this.getName());

}

类的实例化:

var p=new people();

类的继承:

function man(){

people.call(this);//继承public

this.sex="男";

}

man.prototype=Object.create(people.prototype);//继承protect

man.prototype.sayMysex=function(){

alert(this.sex);

}

注意必须先继承再添加方法,否则添加的方法无效。

这种方法实现继承,只能实现单继承。如果继承多个以最后一个为准。

实现多个类可以使用反射的机制。给Function(类)增加一个继承机制,然后进行调用。

Function.prototype.hire=function(agr){
for(var i=0;i<arguments.length;i++){
for(var o in arguments[i].prototype){
this.prototype[o]=arguments[i].prototype[o];
}
}
};

调用 var child=function(){

people.call(this);

main.call(this);

}

child.hire(people,man);

当然你可以通过反射进行类似于接口的实现,不过不建议这样做。

多态的话就是向数组里添加一组具有相同父类对象,然后遍历数组,对每个对象调用该父类的同一个方法。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值