zoukankan      html  css  js  c++  java
  • 闭包

      封装:减少代码的冗余,提高代码的重复利用率

      继承:本来需要开辟多个空间,只需要开辟一个空间,减少内存的消耗,提高性能

      函数归属:函数归属谁,跟他在哪调用没有关系,而跟他在哪定义有关

      闭包的定义:函数在调用的时候,会形成一个私有作用域,内部的变量不能被外部访问,这种保护机制叫闭包(这就意味着函数调用完毕,这个函数形成的栈内存就会被销毁)

      栈内存被销毁的案例: 

      function fn(){
        var a=12;
        a++;
        console.log(a)
      }
      fn()     //13
      fn()     //13
      fn()     //13        (因内部存在一个变量,所以在函数内部栈内存就会被销毁)

      

      但有时候,我们不希望他被销毁 ,所以需要return

      案例: 

      function fn(){
        var a=12
        return function(){
          a++;
          console.log(a)
        }
      }
      var ss=fn()
      ss()  //13
      ss()  //14
      ss()  //15

      解析:

      

      fn()调用完毕后得到的是一个匿名函数,但这个匿名函数在fn()这个作用域下定义的,所以匿名函数内部的变量在fn()作用域下查找,这种写法可以使函数的内部变量不被销毁

       构造函数中尽量不要加return,

      类的本质也是一个函数,里面也有返回值,但默认object,如果强制return一个值,不会造成影响,如果return一个对象,就会造成影响

      

  • 相关阅读:
    json解析:[1]gson解析json
    android 调用系统相机拍照 获取原图
    EventBus使用详解(二)——EventBus使用进阶
    java中的正则表达式
    java的UI设计--------------------------------待补充
    java的网络编程
    IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)
    IO知识点整理(文件File类的使用)
    040 DataFrame中的write与read编程
    039 DataFrame的理解
  • 原文地址:https://www.cnblogs.com/shangjun6/p/9909891.html
Copyright © 2011-2022 走看看