• javascript中的构造函数和原型及原型链


    纯属个人理解,有错误的地方希望大牛指出,以免误人子弟

    1、构造函数:
    构造函数的作用 : 初始化由new创建出来的对象    
    new 的作用: 创建对象(空对象)

    new 后面跟的是函数调用,使用new来调用函数,跟普通的直接调用函数主要的不同: 就是 this 的指向不同了 , 再就是 会自动的返回新创建的对象

    什么是原型?       

    原型的作用:就是为了实现继承! 

    一个对象的原型就是它的构造函数的prototype属性的值。

    在讨论原型的时候,是指的 对象和原型对关系

    prototype是哪来的? 

    所有的函数都有一个prototype属性, 当函数被创建的时候,prototype属性会自动创建和初始化 JS的引擎帮我们创建好的),

    构造函数的prototype属性的默认值是一个对象,这个对象 只带有一个属性,constructor // // Person.prototype.constructor === Person // 结果为:true

     对象在被创建的时候,原型就定下来了, 那么其原型链也就确定下来了

    // function Person() {}

    //    var p = new Person();

      p是构造函数Person创建的对象,其对象的原型链是

    // p -> Person.prototype -> Object.prototype -> null

    // Person.prototype = {};      

    虽然,修改了Person.prototype的值,但是不能影响到已经创建好的对象的原型链 

     原型链就是对象有原型对象,原型对象也是对象,所以原型对象也有原型对象,这样一环扣一环,就形成了一条链式结构叫做:原型链,也叫对象链 

    JavaScript继承就是 拿来主义:自己没有,别人有,拿过来让其成为自己的或者能被自己使用。

    一些结论:

    1 只有 函数 才有 prototype 属性(★★★★★)

    2 只要是 对象 就有 __proto__ 属性(★★★★)

    3 构造函数的 prototype 的类型是:"object"(大部分情况下)

     

  • 相关阅读:
    Linux文件编辑器 vi
    Sudo 和 Root 帐号
    Linux基本命令篇的习题解答
    Linux应用篇
    VMware中虚拟机网卡的四种模式
    Ubuntu游戏集合
    Linux与Window文件共享
    Linux知识点滴II
    [转载][翻译]jQuery Mobile教程创建一个订餐web应用(下)
    在WPF中创建带有刻度线的滑动条
  • 原文地址:https://www.cnblogs.com/lsy0403/p/5844069.html
Copyright © 2020-2023  润新知