zoukankan      html  css  js  c++  java
  • js function理解

    1.function是对象,定义一个function就会在堆中创建一个对象。生成函数如下:

    (1)

    var a = new Function("document.write(1)");

    (2)

    var a = function(){document.write(1);}

    (3)

    function a(){

      document.write(1);

    }

    (4)

    (function(){

      document.write(1);

    }();

    2.function对象是一种特殊的对象,调用function方法,会执行里面的代码。

    a();

    输出1

    3.function内的基本数据类型会在函数退出执行环境栈时内存释放。function访问作用域链与定义时的位置有关。

    function A(){

      var a = 1;

      return function(){

        var b = 1;

        cosnole.log(a);

      }

    }

    var A()();

    输出1

    函数A执行完后,由于函数A中嵌套匿名函数,所以不立即释放函数A的变量。匿名函数是在函数A中定义的,匿名函数可以访问A的作用域以及A作用域链上的作用域。当返回的函数之行时,打印出A出的变量的值1。当匿名函数执行完以后,退出函数执行环境栈,函数A内的变量释放,退出函数执行栈。

    4.function也可通过传递参数的方式,给函数传值。

    function A(){

      var a = 1;

      return function(b){

        var bb = b;

        cosnole.log(bb);

      }

    }

    A()('b');

    输出b

    5.function是一种引用数据类型,可当作其它类型的数据一样处理。function可用作传参、返回值。

    function A(func){

      var a = 1;

      func(a);

    }

    function B(){

      var b = 2;

      A(function(a){console.log(a);console.log(b)};)

    }

    B();

    输出1 2

  • 相关阅读:
    CENTOS7下安装REDIS
    目录结构和文件路径
    bash特性
    (十六)MySQL集群galera实现
    (十五)mysql中间件MyCAT实现
    (4)三剑客之awk
    (十四)基于GTID的主从复制
    (十三)MySQL主从复制
    (3)三剑客之sed
    (十二)MySQL逻辑备份mysqldump
  • 原文地址:https://www.cnblogs.com/fe-huahai/p/6421852.html
Copyright © 2011-2022 走看看