看了自己的博客,我觉得阅读性比较差,这篇换种方式排版。接上篇。
函数对象
函数对象的定义方法: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中,内部函数对于外部函数来说是私有的。
内部函数可以使用外部函数的参数和变量,但是外部函数不能使用内部函数的参数和变量。