zoukankan      html  css  js  c++  java
  • Javascript 原型链

    在JavaScript中,除了null,undefined外,所有的变量都可以当做对象使用对象由函数创建,函数的原型链指向对象,函数也是一种对象,自己定义的函数由Fuction创建。

    每个函数都有一个prototype属性和隐藏属性__proto__,prototype的值为一个对象,对象里有一个constructor指向这个函数本身。

     除了JavaScript自带的Object有prototype属性外,普通对象没有prototype属性,有隐藏的属性__proto__,指向创建该对象的原型。但是Object对象有prototype属性里面除了constructor外,还有一些共享方法如:hasOwnProperty,isPrototypeOf,toString等等。

             使用new关键字加上函数创建的对象,此对象的隐藏属性__proto__指向的是构造函数的prototype对象,即由构造函数创建的对象能够直接使用构造函数prototype对象中的变量和方法。如果构造函数有显示的返回对象,则创建的函数为返回的对象。

             每个函数都有一个prototype原型,每个对象都有一个__proto__隐藏属性,可为隐式原型。

              4个实体:Function(JavaScript自带),Object(Javascript自带),Foo(函数),foo(由函数创建的对象)。

    function Foo(){};
    var foo = new Foo();

              Foo.prototype.constructor--->Foo;

              foo.__proto__===>Foo.prototype;

              Foo.__proto__===>Function.prototype;

              Foo.prototype.__proto__===>Object.prototype;

              Function.__proto__===>Object.prototype;

              Object.__proto__===>Function.prototype;

              Object.prototype.__proto__===>Null。

              新创建的对象沿原型链继承Object.prototype的方法。

            

             

  • 相关阅读:
    confluence的安装、破解和汉化
    Linux学习经验集锦
    MFS 分布式文件系统
    MFS
    Docker 搭建 WordPress
    ansible入门
    docker搭建pxc集群与haproxy负载均衡
    mysql-proxy 实现读写分离
    Linux内核学习总结
    lab8:理解进程调度时机跟踪分析进程调度与进程切换的过程
  • 原文地址:https://www.cnblogs.com/wust-hy/p/7349155.html
Copyright © 2011-2022 走看看