首页 > 其他 > 详细

闭包和原型知识

时间:2020-06-22 19:53:49      阅读:59      评论:0      收藏:0      [点我收藏+]

闭包

    闭包是我们函数的一种高级使用方式,利用函数执行空间不销毁的逻辑。闭包的第一个条件是利用不销毁空间的逻辑,不是返回一个对象数据类型,而是返回一个函数数据类型。

闭包的特点:

  优点:局部变量常驻内存

  缺点:局部变量常驻内存,没有办法被回收,导致内部泄漏。

闭包的概念:

  有一个A函数,在A函数内部返回一个B函数,再A函数内部访问着A函数内部的私有变量。

  例:function test(){

              let num = 1;//私有变量
              function b(){
                  console.log(‘调用了b函数‘)
                   num++;
                //    console.log(num)
                   return num;
                }
                  return b;
            }

 

  闭包一般不主动去运用,写着写着就会出现。

原型:会保存对象的方法

每一个函数天生自带一个成员prototype,是一个对象空间。

原型的出现是为了解决构造函数的缺点。

当我们写构造函数的时候,属性直接写在构造函数体内,方法写在原型上。

原型链:

   1 .当我们访问一个属性的时候,首先会在自身内存中查询,

   2. 查询不到就去自己的原型里面找  对象的.__proto__(Array.prototype)

      3. 原型本身也是对象,如果找不到就去 自己原型的原型找  arr.__proto__.__proto__

      4. 一直去原型里查找,直到最后Object.prototype都找不到,就直接返回undefined

继承

继承是和构造函数相关的一个应用,让一个构造函数去继承另一个构造函数的属性和方法。

子类 继承 父类, 子类就拥有了父类所有的属性和方法

    Object 方法

    Array 继承了 Object -  数组的原型指向了  Object的原型  只能继承方法 

    1 构造函数继承-弊端:只能继承属性,不能继承原型里的方法

     2 原型链继承:能继承person的方法

    3 混合继承

    例:  function WhitePerson(){

                 Person.call(this,11)}

             WhitePerson.prototype = new Person()

        4 最终版 class  extends 父类

闭包和原型知识

原文:https://www.cnblogs.com/52580587zl/p/13178758.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!