美文网首页
JavaScript中的继承

JavaScript中的继承

作者: 2分_08b6 | 来源:发表于2019-02-28 14:32 被阅读0次

    一.继承基础知识

    prototype和proto之间的区别

    1. 每一个js对象都有proto对象(值就是它所对应的原型对象, 因此可以将proto对象称作原型对象), 并从原型对象继承属性和方法
    2. 只有函数才会有prototype对象,且使用new声明对象, 对象实例的proto(原型对象)对应于函数的prototype对象,并以此实现继承
      例如:
    // one 是对象字面量,es规定继承自Object
    var one = {x: 1};
    // two明确是Object的实例
    var two = new Object();
    console.log(one.__proto__ === Object.prototype);          // true
    console.log(two.__proto__ === Object.prototype);          // true
    console.log(one.toString === one.__proto__.toString);   // true
    console.log('one.prototype', one.prototype);                    // undefined
    

    二.继承体系

    js继承体系.jpg

    验证如下:
    验证Function.prototype继承Object.prototype

    Function.prototype.__proto__ === Object.prototype  // true
    

    验证Object, Function, Array, String, Number, Boolean继承Function.prototype

    Object.__proto__ === Function.prototype;        // true
    Function.__proto__ === Function.prototype;    // true
    Array.__proto__ === Function.prototype;          // true
    String.__proto__ === Function.prototype;        // true
    Number.__proto__ === Function.prototype;     // true
    Boolean.__proto__ === Function.prototype;    // true
    

    相关文章

      网友评论

          本文标题:JavaScript中的继承

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