zoukankan      html  css  js  c++  java
  • prototype和__proto__区别

    prototype和__proto__分别是显式原型和隐式原型,直接上代码吧:

    function person(){
        this.age = 12;
    }
    person.prototype; //Object
    let person1 = new person();
    person1.__proto__; // Object
    person1.__proto__ === person.prototype; //true

    可以看到显式原型和隐式原型是同一个对象~~甚至,如果你操作person1.__proto__等价于操作person.prototype

    ps:网上查资料的时候同时查到,关于Object.create的问题

    function person(){
        this.age = 12;
    }
    let person1 = new person();
    let person2 = Object.create(person1);
    let person3 = new person();
    person1.__proto__ === person2.__proto__; //false
    person1.__proto__ === person3.__proto__; //true

    其实es5对象的原型,都是一个它“继承”的对象,es5实现继承的方法之一就是靠create了,当然更多的方法是直接把构造函数的prototype指向一个要继承的对象。

    person2.__proto__ === person1 //true

    person2就是继承自person1,同样操作person2.__proto__等同于直接操作person1。

  • 相关阅读:
    通用sqlserver分页存储过程
    JSONP解决跨域请求
    laravle框架
    XML作用
    mysql 中的常用查询
    smarty模板技术
    Cookie和Session 会话技术
    正则表达式
    Mongodb常用知识点
    PHP之PDO
  • 原文地址:https://www.cnblogs.com/amiezhang/p/7859943.html
Copyright © 2011-2022 走看看