文章插图
文章插图
深入理解:全面掌握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.
- 山姆会员店当天卖不掉的食物会打折吗
- 家里忽然出现白蚁的原因
- 免费好用的电话软件 免费网络电话软件哪个好
- 不毛之地的意思,形容自然环境及其恶劣最准确的成语?
- 怎么看出来男生是不是真的爱我?会一直牵着你的手!
- 佐佐木希-男人永远的女神 佐佐木希壁纸
- 动漫女生撒娇时说的可爱叠词 女生撒娇时说的话
- 男人想要套牢一个女人的表现 女生什么表现表示可以睡她
- 女生撒娇的甜腻情话 女生撒娇句肉麻
- 为什么女性总会觉得缺乏安全感 女生缺乏安全感的原因