JavaScript定义函数的3种方式
JavaScript函数是一种基于对象的脚本语言,JavaScript代码复用的单位是函数。JavaScript中的函数可以独立存在,而且JavaScript中的函数完全可以作为一个类来使用(而且它还是该类的唯一的构造器)。函数也可以是一个对象,函数本身就是Function实例。以下是定义函数的3中方式:
定义命名函数
<script type="text/javascript">
hello('baidu');
function hello(name){
alert(name + ", 你好!");
}
</script>
结果如下:
函数的最大的作用是提供代码重用,将需要重复使用的代码块定义成函数,提供更好的代码重用。
注意:
在同一个<script.../>元素中,JavaScript允许先调用函数,然后再定义该函数,但是在不同的<script.../>元素中时,必须先定义函数,然后再调用该函数,否则程序会报错!
函数可以有返回值,也可以没有返回值。函数的返回值可以使用return语句返回,在函数的运行过程中,一旦遇到第一个return语句,函数就返回s's返回值,函数运行结束。
<script type="text/javascript">
function hello( name ){
if( typeof name == 'string'){
return name + " , 你好 !";
}
return '名字只能是字符串';
}
alert(hello('baidu'));
</script>
结果:
定义匿名函数
定义匿名函数的方式:
function ( 参数列表){ 执行语句...};
这种函数定于语法无需指定函数名,而是将参数列表紧跟着function关键字,在函数定义语法的最后不要忘记紧跟分号(;)。
当通过这种语法定义了函数之后,实际上就是定义了一个函数对象(即function实例),接下来可以将这个对象赋给另外一个变量。
<script type="text/javascript">
var f = function( name ){
document.writeln('匿名函数<br>');
document.writeln('你好' + name);
};
f('百度');
</script>
结果:
对于使用匿名函数的语法,可读性非常好,程序使用function关键字定义一个函数对象,然后把这个对象赋值给f变量,以后程序即可通过f来调用这个函数。只用匿名函数的另一个好处是更加的方便,当需要为类,对象定义方法时,使用匿名函数的语法能提供更好的可读性。
使用Function类匿名函数
JavaScript提供了一个Function类,该类可以用于定义函数,Function类的构造器的参数个数可以不受限制,Function可以接受一系列的字符串函数,其中最后一个字符串参数是函数的执行体,执行体的各语句以分号隔开,而前面的字符串参数是函数的参数。
<script type="text/javascript">
var f = new Function('name',"document.writeln('Function 定义的函数<br>');"+
"document.writeln( '你好' + name );");
f('百度');
</script>
结果:
上面的代码使用new Function()语法来定义一个匿名函数,并将该匿名函数赋给f变量,从而允许f来访问匿名函数。调用Function类的构造器来创建函数虽然能明确的表示创建一个Function对象,但由于Function()构造器的最后一个字符串代表函数的执行体,当函数的执行体很多的时候,Function 的最后一个参数将会变得很“拥挤”,所以使用这种方式定义执行语句比较多的函数的可读性会非常低。
上一篇: Javascript的匿名函数
下一篇: JavaScript3