关于javascript定义function的探讨

梦想的初衷 提交于 2020-03-02 11:07:13

常见定义函数的方法

使用函数语句来定义,语法如下:


  1. function myfunc(arg_1,arg_2,...,arg_n){
  2. // 执行一些语句
  3. }

使用函数表达式来定义,语法如下:

  1. var myfunc=function(arg_1,arg_2,...,arg_n){
  2. // 执行一些语句
  3. }   使用Function类来定义,语法如下:

这是因为function语句在解析时会发生被提升的情况。也就是说不管function被放置在哪里,它都会被移动到被定义时所在作用域的顶层。这样的后果就是放宽了函数必须先声明后使用的要求。

也就是说函数声明方式在代码执行之前(解释期)被加载到作用域中,匿名函数方式则需在代码执行时(运行期)加载。

最常用的对象是将全局对象window作为参数传进去,这样函数或变量就成为全局函数和变量了。很多库函数都是这样来定义的,jQuery整个库定义都位于匿名自执行函数中,并传递window作为参数:

  1. (function(window,undefined){
  2. //jQuery定义
  3. })()

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!