美文网首页
面向对象特征介绍

面向对象特征介绍

作者: May丶be | 来源:发表于2017-09-23 18:39 被阅读0次

    面向对象的三大特征

    1.封装

    • 通过类的封装,隐藏内部细节
    • 将复杂的逻辑通过函数封装起来,使用的时候调用即可,不需要考虑内部的细节

    2.继承

    • 子类可以从父元素继承属性或者方法

    3.多态

    • 指由继承而产生的相关的不同的类,其对象对同一消息会作出不同的反应
    • 简单来说就是不同类型的不同形态

    javascript中的继承

    1.混入式继承

    var o1 = {
            name: "jack",
            age: 18
        }
    
        var obj = {};
    
        obj.extend = function (object) {
            for (var k in object) {
                this[k] = object[k];
            }
        }
    
        obj.extend(o1);
        console.log(obj);
    }
    
    

    2.原型继承

    • 利用对象的动态性
    function Person() {
        }
    
        Person.prototype.say = function () {
            return "hello"
        };
        Person.prototype.coding = function () {
            return "coding"
        };
        var p = new Person();
        console.log(p.say());
        console.log(p.coding());
    
    • 利用覆盖原型对象
    function Car() {
        };
        Car.prototype = {
            //默认的原型对象中有constructor属性,为了与原来的对象一致
            //需要手动添加constructor属性
            constructor: Car,
            drive: function () {
                return "drive fast"
            }
        };
        var car = new Car();
        console.log(car.drive());
    
    • 利用混入式继承
    function Student() {
       }
    
       Student.prototype.extend = function (object) {
           for (var k in object) {
               this[k] = object[k];
           }
       }
       Student.prototype.extend({
           name: "jack",
           age: 18
       })
       var student = new Student();
       console.log(student.name);
    
    

    3.Object.create方法

    //Object.create
      //语法 : var newObj = Object.create( 参数对象 );
      //将参数对象 看做 新对象 的原型对象
      var obj = {
        apple : "苹果",
        orange : "橘子"
      }
      var newobj = Object.create(obj);
      console.log(newobj.apple);
    

    相关文章

      网友评论

          本文标题:面向对象特征介绍

          本文链接:https://www.haomeiwen.com/subject/lyncextx.html