• 面向对象


    面向对象的编程思想:根据需求,抽象出属性和方法,定义构造函数,然后实例化对象,通过对象调用属性和方法,完成相应的需求


    封装

    把抽象出来的属性和对方法组合在一起, 且属性值被保护在内部, 只有通过特定的方法进行改变和读取称为封装
    

      以代码为例,我们先建立一个构造函数Person,它有两个属性和一个方法

            // 封装
            function Person(name,age){
                this.name=name;
                this.age=age;
                this.play=function(){
                    console.log(this.name+'就喜欢蹦极!')
                }
            }
            let p1=new Person('jack',22);
            p1.play();    

      然后我们生成一个实例对象p1,并调用构造函数的play方法。

      p1这个对象并不知道play()这个方法是如何实现的, 但是仍然可以使用这个方法. 这其实就是封装

    2、继承

      

    可以让某个类型的对象获得另一个类型对象的属性和方法称为继承
    

     这里使用call()方法实现继承

            
        
        // 继承
        function Person(name,age){
                this.name=name;
                this.age=age;
                this.play=function(){
                    console.log(this.name+'就喜欢蹦极!')
                }
            }
            
            function Child(name,age,weight){
                Person.call(this,name,age);
                this.weight=weight;
            }
    
            let child1=new Child('jane',11,55);
            child1.play();    

    3、多态

    同一操作作用于不同的对象产生不同的执行结果, 这称为多态
    

     

            // 多态
                function Person(name) {
                this.name = name;
            }
    
            function Student(subject) {
                this.subject = subject;
                this.study = function () {
                    console.log(this.name + "在学习" + this.subject);
                }
            }
    
            function Teacher(subject) {
                this.subject = subject;
                this.study = function () {
                    console.log(this.name + "在学习" + this.subject);
                }
            }
    
            Student.prototype = new Person('john');
            Teacher.prototype = new Person('lucy');
    
            let stu = new Student('历史');
            let tea = new Teacher('教学');
            stu.study();
            tea.study();        
    对于同一函数doStudy, 由于参数的不同, 导致不同的调用结果,这就实现了多态.
  • 相关阅读:
    TCP连接异常断开检测(转)
    正排索引与倒排索引(转)
    Elasticsearch之优化
    把网卡中断绑定到CPU,最大化网卡的吞吐量(转)
    十张GIFs让你弄懂递归等概念
    二维数组回形遍历(转)
    如何做Go的性能优化?(转)
    Go的50度灰:Golang新开发者要注意的陷阱和常见错误(转)
    Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布(转)
    从零到卓越:京东客服即时通讯系统的技术架构演进历程(转)
  • 原文地址:https://www.cnblogs.com/dawnwill/p/9876861.html
Copyright © 2020-2023  润新知