js函数定义的三种方式区别 js函数怎么定义



文章插图
js函数定义的三种方式区别 js函数怎么定义

文章插图
深入理解:全面掌握JavaScript 函数定义方式1.函数的定义
通俗的来讲 , 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码快 。它是 JavaScript 语言一个即重要又复杂的组成部分 , 任何一个 JavaScript 框架 , 如 Dojo、jQuery 等都是有成百上千个函数组成的 。函数的使用不仅提高了代码本身的可读性 , 也为它的扩展提供了可能 , 同时还降低了维护成本 , 加快 web 项目的开放进度;尤其是在多人参与的敏捷开发中 。
通常函数的定义是通过 function 语句实现的:
清单 1.函数定义
funcname 是要定义的函数名 , 是一个标识符 , 而不是字符串或者表达式;紧跟函数名后面的是用括号括起来的参数列表 , 参数之间用逗号隔开;最后 , 也是这个函数的核心部分:函数体 , 它是由一行或者多行代码组成并且是用大括号括起来的 。
函数定义描述的是一个静态的程序结构 , 当 JavaScript 解析器遇到一个函数定义时 , 它就被解析并存储构成函数体的语句 , 然后定义一个和该函数名同名的全局或者某个对象属性来保存 。当该函数被调用时 , 里面的函数体才真正的被执行 。如:
清单 2
【js函数定义的三种方式区别 js函数怎么定义】2. Function()构造函数
定义一个函数 , 最为普遍的是直接使用 function 关键字来定义 , 又称函数声明式(function declaration),如上面定义的 f 函数 , 但是 function 语句并非是定义函数的惟一方法 。在 ECMAScript v1 和 JavaScript v1.1 中 , 还可以使用 Function () 构造函数和 new 运算符动态地定义函数 , 如下:
var myfunc = new Function (‘x’, ‘y’, ‘alert(x+y)’);
这行代码创建了一个新函数 , 该函数和下面使用 function 方法定义的函数是等价的:
清单 3.
Function () 定义中 , 前面两个是参数 , 参数可以是任意多个字符串;第三个是函数体 , 可以包含任何 JavaScript 语句 , 语句之间用分号隔开 。如果没有参数 , 传一个函数体即可 。由于传递给 Function () 函数中 , 没有一个字符串是用来声明函数名的 , 所以它是一个匿名函数 。
使用 Function()构造函数来定义函数允许我们动态的来定义和编译一个函数 , 而不是限定在 function 预编译的函数体中 。但同时也会带来负面影响 , 因为每次调用这个函数都要对它进行编译 , 对性能有一定的影响 , 尤其是在循环体中 。
3. 函数直接量
函数定义的第三种方式是函数直接量 , ECMAScript v3 定义了函数直接量 , JavaScript 1.2 实现了它 。函数直接量是一个表达式 , 它即可以定义一个匿名函数 , 也可以定义一个带函数名的函数:
清单 4.