js 封装

参考文章:https://www.cnblogs.com/jiejiejy/p/7666091.html

js 模拟封装

1、什么叫封装?
①方法的封装:将类内部的函数进行私有化处理,不对外提供接口,无法在类外部使用的方法,称为私有方法,即方法的封装。
②属性的封装:将类中的属性进行私有化处理,对外不能直接使用对象名访问(私有属性)。同时,需要提供专门用于设置和读取私有属性的set/get方法,让外部使用我们提供的方法,对属性进行操作。这就叫属性的封装。
2、注意:封装不是拒绝访问,而是限制访问。要求调用者,必须使用我们提供的set/get方法进行属性的操作,而不是直接拒绝操作。
因此,单纯的属性私有化,不能称为封装!必须要有私有化后,提供对应的set/get方法。

function Person(name,age1){
    this.name=name;//  this.age=age;
    var age=0;     
    this.setAge=function(ages){
        if(ages>0&&ages<=120){
            age=ages;
        }else{
            alert("年龄赋值失败");
        }
    }
    // 当实例化类拿到对象时,可以直接通过类名的()传入年龄,设置私有属性
    if(age1!=undefined) this.setAge(age1);
    this.getAge=function(){
       return age;
    }
    this.sayTime=function(){
       alert("我说当前时间是:"+getTime());
    }
    this.writeTime=function(){
       alert("我写了当前时间是:"+getTime());
    }
    /*私有化的方法,只能在类内部被其他方法调用,而不能对外提供功能。这就是方法的封装*/
    function getTime(){
       return new Date();
    }
}
            
var zhangsan=new Person("张三",99);
zhangsan.setAge(99);
alert("张三的年龄是"+zhangsan.getAge());
            
var lisi=new Person("李四",99);
lisi.setAge(110);
alert("李四的年龄是:"+lisi.getAge());

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值