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

  • 相关阅读:
    猫与老鼠的故事(委托)
    返回类型协变和参数类型逆变
    HTTP 方法:GET 对比 POST
    Ajax
    django(未解决的问题)
    mysql开机启动
    apache的不同路径conf/httpd.conf有什么区别【转载】
    Apache部署Django过程中遇到的一些问题
    执行django-admin.py startproject XXX报错的问题
    yum安装软件的过程中出现的一些问题
  • 原文地址:https://www.cnblogs.com/fe-huahai/p/6421852.html
Copyright © 2011-2022 走看看