• JS中对象的特征:封装(函数)


    面向对象的特征
    1、第一个特征:封装
    1.1概念:隐藏实现细节的过程
    1.2优点:重用和隐藏细节
    Java里面有权限修饰符,但是JS里面没有,JS所有的属性都是公共的,为了让属性私有化,就有相应方法:
    第一种:定义一个私有变量,结合get/set函数
    
    function Student(name,age,phone){
        this.name = name;//公共属性
        this.age = age;//公共属性
        let _phone = phone;//私有属性
        this.setPhone = function(phone){
            console.log("1");
            _phone = phone;//设置私有属性
        }
        this.getPhone = function(){
            console.log("2");
            return _phone;//获取私有属性
        }
    }
    let s1 = new Student("关羽",19,322);
    s1.setPhone(123);//修改私有属性,因为调用了setPhone函数此时会输出1
    console.log(s1.name,s1.age,s1.getPhone()); 
    //因为调用了getPhone函数,会先输出2,再输出关羽 19 123 
    
    第二种 defineProperty方法
    
    function Teacher(name,age,hoby){
    this.name = name;
    this.age = age;
    this.hoby = hoby;
    }
    Object.defineProperty(Teacher.prototype,"name",{
    set:function(name){
        _name = name;
    },
    get:function(){
        if (this.age > 30) {
            return "大龄" + _name;
        }
        return _name;
    }
    })
    let T1 = new Teacher("张飞",32,"游泳");
    console.log(T1.name,T1.age,T1.hoby);
    //输出  大龄张飞  32  游泳
  • 相关阅读:
    用shell脚本监控进程是否存在 不存在则启动的实例
    vue+element-ui+ajax实现一个表格的实例
    c的指针和php中的引用的区别
    mysql or条件查询优化
    Linq查询操作之投影操作
    Linq查询操作之Where筛选
    Linq专题之查询操作
    linq之join子句
    linq之let子句
    linq之into子句
  • 原文地址:https://www.cnblogs.com/cj-18/p/9164608.html
Copyright © 2020-2023  润新知