zoukankan      html  css  js  c++  java
  • JavaScript中var变量引用function与直接声明function

    今天在h5开发app的过程中遇到了一个js问题,function的执行问题

    在js中声明函数function有这两种方法

    var A=function(){...}

    或者

    function A(){...}

    第一种称之为变量引用函数,因为js允许函数作为一个值传递给变量,第二种是直接声明式函数

    一直以为这两种没什么区别,然而,今天在使用过程中发现,当我使用第一种方式声明function的时候,如果如下这样:

    document.getElementById("xx").addEventListener("tap", A);
    var A=function(){...}
    //点击tap时并不会执行A

    原因很简单,如果使用第一种方法,即函数作为值赋给变量A,必须先声明A,并且赋值,一个基本的编程常识:没有声明过的变量不能使用(内存中根本不存在),变量声明必须在使用之前,实例中addEventListener根本得不到A!

    然而话说回来,如果是第二种方法,即直接声明函数的方法,那么浏览器在获取DOM结束之后,function就已经在那里了,可调用

    var 变量= 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用。

    function方式定义函数可以先调用,后声明。

  • 相关阅读:
    log4j到log4j2升级迁移方案
    WPF InkCanvas 书写毛笔效果
    我是怎么把一个项目带崩的
    Nginx 安装详细(一)
    设计方法小总结
    Node.js event loop 和 JS 浏览器环境下的事件循环的区别
    JavaScript this指向问题
    域名解析问题
    浏览器缓存
    Go项目部署到服务器
  • 原文地址:https://www.cnblogs.com/devilyouwei/p/6351561.html
Copyright © 2011-2022 走看看