javascript之function2

看了自己的博客,我觉得阅读性比较差,这篇换种方式排版。接上篇。

函数对象

函数对象的定义方法:var functionObjectName = new Function ([arg1, arg2, ... argn], functionBody);

其中functionObjectName 可以是变量的名字,对象的一个属性,也可以是事件处理函数的名字如window.onerror

arg1, arg2, ... argn 就是参数的名字

functionBody 是方法体

函数对象每一次被用到的时候,都会被编译一次,所以效率上不如上一篇文章的2种方式,因为那2种方式是编译好的。

下面的代码定义了一个函数对象,设置了文档的背景颜色。

var setBGColor = new Function("document.bgColor = 'antiquewhite'");

调用的时候: setBGColor();

也可以用下面的方式调用

  • document.form1.colorButton.onclick = setBGColor;
  • <INPUT NAME="colorButton" TYPE="button"
      VALUE="Change background color"
      onClick="setBGColor()">

这种函数定义的方式和 下面这种定义函数的很像。

function setBGColor() { document.bgColor = 'antiquewhite';}

不同点是:

函数对象定义的方式中 setBGColor 是一个变量,并且该变量的值是一个function,

而使用function setBGColor() { document.bgColor = 'antiquewhite';}时, setBGColor不是一个变量,而是一个function的名字。

另外:你可以嵌套一个function在另外一个function中,内部函数对于外部函数来说是私有的。

内部函数可以使用外部函数的参数和变量,但是外部函数不能使用内部函数的参数和变量。