论坛首页 Web前端技术论坛

JavaScript函数定义方面的问题

浏览 1349 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-09  

      当浏览器解析你的脚本并遇到使用下面这种语法定义的函数时,如:function example(){...} , example() 函数会在脚本执行之前立即被声明.这意味着你可以在脚本中任何地方调用example(),即使对函数的调用发生在函数的定义之前也没问题. 而对于另外一种语法, 如var example2 = function(){...}, 在脚本执行到该赋值语句之前 example2()函数是不存在的. 如果你在该定义之前调用 example2(), 结果会失败.

      注: 浏览器中的解释程序在执行javascript代码之前,首先要对代码进行变量初始化, 即初始化window对象之下的所有顶级变量. 由于第二种定义函数的语法是通过赋值语句实现的,所以在初始化过程中不会被立即声明. 只有在解释器开始执行代码并执行到相应的赋值语句时, 该函数才会被声明. 因此调用该函数的语句只能出现在定义该函数的语句之后. 并且,如果使用第二种语法来定义构造函数, 那么为其prototype属性中添加公共成员的代码,也应该在该函数定义之后.

论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics