【JavaScript】(4)普通函数、动态函数定义格式,调用方式,注意的详细细节
来源:互联网 发布:中电41所 知乎 编辑:程序博客网 时间:2024/06/06 11:42
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JavaScript语言基础--函数function\Function</title> </head> <body> <pre> ▉js函数普通定义格式:▉ function 函数名(参数列表){ 执行语句; [return 返回值;] } </pre> <script type="text/javascript"> //js函数没有返回值类型,形参也没有类型 function hello(){ alert("hello function...."); } //hello(); function sum(a,b){ return a+b; } function fun(){ var x=sum(100,200); alert(x); } //fun(); </script> <!-- 调用已经加载好的js中的函数 --> <input type="button" onclick="hello();" value="函数1"/> <input type="button" onclick="fun();" value="函数2" /> <h3>以下演示函数的若干细节</h3> <input type="button" onclick="demo( )" value="有关函数名及内存模型的细节"><br/> <input type="button" onclick="demo2( )" value="有关函数书写位置的细节"><br/> <input type="button" onclick="demo3( )" value="有关函数参数的细节"><br/> <script type="text/javascript"> //❶、有关函数名及内存模型的细节 function getSum(){ return 10; } function demo(){ var x=getSum();//结果:10 【注意 】:获得的是函数的返回值 alert(" x=getSum(); x= "+x); var y=getSum;/*【注意】:函数其实是一个Function对象,函数名即使对象名, 本句相当于引用赋值---y和getSum指向同一个Function对象*/ alert( y );//结果:相当于调用:y.toString( ); 输出函数的特征字符串---函数的定义代码 alert( y( ) );//结果:输出10---调用引用y所指向的那个Function对象对应的函数代码 } </script> <script type="text/javascript"> //❷、有关函数书写位置的细节 function demo2(){ show(1,3); } /*【注意①】: ☆WA:不能执行,因为浏览器在解析当前<script>标记时,还没有加载下一个<script>,因此不认识这个show(a,b)这个函数 ☆如果在上面的按钮“有关函数书写位置的细节”的单击事件中调用dmeo2( ),则可以,因为事件发生时,浏览器已经把整个页面解析完成(页面显示完) ☆综上:为了我们写的所有js函数被页面都能认识,通常把这些js代码都写在<head>中,然后再页面元素事件调用,此时<head>部分早已解析完了*/ //demo2(); </script> <script type="text/javascript"> function show(a,b){//这里的a,b是用来识别函数用的,而且让js帮忙把前两个实参装配到这两个变量,以便使用 alert(a+","+b); //【注意②】:有关函数参数细节的说明:js内部是用一个名为arguments的数组去接收实参的 alert("arguments.length:"+arguments.length); for(var i=0;i<arguments.length;i++){ document.write(arguments[i]+" ");//打印出show函数的参数 } } </script> <script type="text/javascript"> //❸有关函数参数的细节:js中的函数不存在重载,参数根据调用时的实参进行自动装配---给了就赋值,没给就undefined,多给了没接住 //js中参数跟函数的识别没有关系,只以函数名识别,而且函数名实际上是引用变量,和函数名捆绑的引用变量指向的是同一个函数 function demo3(){ //show(2, 3); //show("hello","hhh"); //show(1);//结果:1,undefined show(123,"abc",true,[10010,10101,10101]); } </script> <pre> ▉js动态函数的定义格式: ▉ var 函数名=new Function( 形参列表,函数体描述 );//形参列表和实参列表都以字符串格形式给出 </pre> <script type="text/javascript"> /*用动态函数描述此普通函数 function add(a,b){ var s=0; s=a+b; return s; } */ </script> <script type="text/javascript"> //【注意】:动态函数简单实用方式1: var add=new Function("a,b","var s=0; s=a+b; return s;");//参数列表合用一个参数列表 var add=new Function("a","b","var s=0; s=a+b; return s;");//参数列表分开写 //alert("add( 2,3 )= "+add(2,3)); </script> <!-- 【注意】:动态函数深入实用方式2: --> <h3>动态函数的解耦用法演示---类似于Java中的 </h3> 参数列表:<input type="text" name="param">函数体描述:<input type="text" name="desc"> <input type="button" value="执行函数" onclick="bb();"> <script type="text/javascript"> function bb(){ /*此处一定要小心,value后边没有“ ( ) ” 没发现,坑了好久 var param=document.getElementsByName("param")[0].value();*/ var param=document.getElementsByName("param")[0].value; var desc=document.getElementsByName("desc")[0].value; var f=new Function(param,desc); alert( f(2 ,3) ); } </script> </body></html>
0 0
- 【JavaScript】(4)普通函数、动态函数定义格式,调用方式,注意的详细细节
- JavaScript函数定义的三种方式及其调用
- JavaScript定义函数的方式
- 【scala 函数定义和调用】Scala的函数调用:普通函数、匿名函数、柯里化函数
- 通过JavaScript定义函数的注意点
- JavaScript 函数(一)- 函数的定义及调用
- C++函数调用方式(注意是函数调用方式)
- python 调用dll中参数为BYTE的函数(注意接口定义的格式)
- 宏函数定义时需要注意的一些细节
- Javascript 函数定义方式
- javascript函数定义方式
- JavaScript函数分类、定义方式和调用方式
- javascript定义函数的几种方式
- Javascript中两种方式定义函数的区别
- JavaScript定义函数的三种方式
- javascript定义函数的三种方式
- Javascript定义函数的几种方式
- javascript定义函数的三种方式
- linux系统编程知识(一)
- 【入门篇】Activiti
- Oracle自定义函数及应用举例(不同输入输出参数情况)
- 有关linux下eclipse写C语言遇到的问题
- ubuntu14.04上用vsftpd建立匿名ftp服务器
- 【JavaScript】(4)普通函数、动态函数定义格式,调用方式,注意的详细细节
- Object类
- Prime Time
- 开灯问题
- Python-Class
- 简谈反射
- 四月英语——你是人间四月天
- Linux 常用命令
- mysql---存储引擎