JavaScript函数
来源:互联网 发布:苹果手机直播软件 编辑:程序博客网 时间:2024/06/12 23:05
JS中函数可以如下定义:
function sayHello(){ alert("helllo");}
也可以按如下的格式定义:
var sayHello= function(){ alert("hello");};
第一种方式称之为定义式,第二种方式称之为变量式。下面看个有意思的例子:
function sayHello(){ alert("hello");}sayHello();function sayHello(){ alert("hello world!");}sayHello();
这段程序最终输出的结果是:hello world!
这里有两个疑问:
(1)这么定义函数是否是合法的?
答案显然是合法的,JS就可以这么写。
(2)为什么输出的结果是hello world!而不是hello?
原因就是JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。也就是说,在第一次调用sayHello之前,第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。
接下来的事情更是颠覆之前建立起来的程序员三观!在JavaScript中,函数也是一种对象,可以给其添加属性、方法,看下面这段代码:
function sayHello(){}sayHello.word = "o my god!";function showWord(){ alert(sayHello.word);}
调用showWord函数会输出:o my god!
任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可以是其他函数。也就是说,函数具有对象的全部特征,你完全可以把函数当对象来用。其实,函数就是对象,只不过比一般的对象多了一个括号“()”操作符,这个操作符用来执行函数的逻辑。即,函数本身还可以被调用,一般对象却不可以被调用,除此之外完全相同。
- javascript函数
- Javascript函数
- Javascript函数
- javascript函数
- javascript函数
- javascript函数
- JavaScript函数
- JavaScript 函数
- JavaScript 函数
- JavaScript函数
- javascript函数
- javascript函数
- javascript函数
- JavaScript 函数
- javascript函数
- javascript 函数
- javascript函数
- javascript函数
- string和CString的头文件
- CPSMini项目即将发布
- chrome中Web开发工具插件
- socket编程:服务器与客户端简单交互的例子
- 2011 9 11最新过QQ游戏检测Cheat Engine(CE)搜索数据
- JavaScript函数
- c语言面试题集-单片机) (转载+本人测试)
- 分享一个开源的批量修改VC工程属性的小工具
- <zz>版本控制软件Git / Github的GUI使用
- N次贝塞尔曲线动画
- C++引用类型的原理
- Linux添加USB转串口驱动
- LPC2103 IAR 配置文件详解
- 我的php学习笔记(二十二)php的面向对象开发(九)