zoukankan      html  css  js  c++  java
  • 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  游泳
  • 相关阅读:
    Git 获取远程分支
    entOS查看系统信息-CentOS查看命令
    CentOS6.5下用yum安装 git
    CENTOS如何禁用ROOT本地或远程SSH登录
    ProtoBuf练习(二)
    ProtoBuf练习(一)
    ProtoBuf练习
    Protocol Buffers官方文档(开发指南)
    Protocol Buffers官方文档(proto3语言指南)
    Boost Python学习笔记(五)
  • 原文地址:https://www.cnblogs.com/cj-18/p/9164608.html
Copyright © 2011-2022 走看看