面向对象特征介绍

2017-09-23  本文已影响0人  May丶be

面向对象的三大特征

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);
上一篇下一篇

猜你喜欢

热点阅读