欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript定义函数的3种方式

程序员文章站 2022-04-05 11:11:36
...

JavaScript函数是一种基于对象的脚本语言,JavaScript代码复用的单位是函数。JavaScript中的函数可以独立存在,而且JavaScript中的函数完全可以作为一个类来使用(而且它还是该类的唯一的构造器)。函数也可以是一个对象,函数本身就是Function实例。以下是定义函数的3中方式:

定义命名函数

        <script type="text/javascript">
			hello('baidu');
			function hello(name){
				alert(name + ", 你好!");
			}
			
		</script>

结果如下:

                                JavaScript定义函数的3种方式

函数的最大的作用是提供代码重用,将需要重复使用的代码块定义成函数,提供更好的代码重用。

注意:

在同一个<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>

结果:

                                   JavaScript定义函数的3种方式

定义匿名函数

定义匿名函数的方式:

                function (  参数列表){ 执行语句...};

这种函数定于语法无需指定函数名,而是将参数列表紧跟着function关键字,在函数定义语法的最后不要忘记紧跟分号(;)。

当通过这种语法定义了函数之后,实际上就是定义了一个函数对象(即function实例),接下来可以将这个对象赋给另外一个变量。 

    <script type="text/javascript">
			var f = function( name ){
				
				document.writeln('匿名函数<br>');
				document.writeln('你好' + name);
			};
			f('百度');
     </script>

结果:

                                                     JavaScript定义函数的3种方式 

对于使用匿名函数的语法,可读性非常好,程序使用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>

结果:

JavaScript定义函数的3种方式

上面的代码使用new Function()语法来定义一个匿名函数,并将该匿名函数赋给f变量,从而允许f来访问匿名函数。调用Function类的构造器来创建函数虽然能明确的表示创建一个Function对象,但由于Function()构造器的最后一个字符串代表函数的执行体,当函数的执行体很多的时候,Function 的最后一个参数将会变得很“拥挤”,所以使用这种方式定义执行语句比较多的函数的可读性会非常低。