JavaScript 两个概念:Function 与function

简而言之,Function 是对象而function 是函数。实际上,在JavaScript 中声明一个函数本质上为创建Function 对象的一个实例,而函数名则为实例名。

先看如下的函数:function sayHello(username) { alert("Hello "+name); }输入参数“NUDT!”。

如果通过创建Function 对象的实例的方式来实现该功能,代码如下:var sayHello = new Function("name","alert('Hello '+name)");在该方式中,第一个参数是函数sayHello()的参数,第二个参数是函数sayHello()的函数体。定义之后,可通过调用sayHello(“NUDT!”)的方式获得上述的结果。

通过两种构造方式的对比,可以看出所谓的函数只不过是 Function 对象的一个实例,而函数名为实例的名称。

既然函数名为实例的名称,那么就可以将函数名作为变量来使用。

考察如下的代码:function sayHello() { alert("Hello"); } function sayBye() { alert("Bye"); } sayHello = sayBye;上述代码运行后,再次调用sayHello()函数,返回的是“Bye”而不是“Hello”。