javascript之构造函数、函数直接量区别介绍

javascript之构造函数、函数直接量区别介绍

ID:32658026

大小:63.39 KB

页数:5页

时间:2019-02-14

javascript之构造函数、函数直接量区别介绍_第1页
javascript之构造函数、函数直接量区别介绍_第2页
javascript之构造函数、函数直接量区别介绍_第3页
javascript之构造函数、函数直接量区别介绍_第4页
javascript之构造函数、函数直接量区别介绍_第5页
资源描述:

《javascript之构造函数、函数直接量区别介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Javascript之Function()构造函数、函数直接量区别介绍函数是由这样的方式进行声明的:关键字function.函数名、一组参数,以及置于括号中的待执行代码;Function)构造函数实际上是功能完整的对象函数定义函数是由这样的方式进行声明的:关键字function.函数名、一组参数,以及置于括号中的待执行代码。函数的构造语法有这三种:Js代码1.functionfunctionName(argOzargl,.・・argN){statements}//function语句2.varfunction_name=n

2、ewFunction(argl,arg2,argN,function_body);//Function()构造函数3.varfunc=function(argO,argl,..・argN){statements};//函数直接量示例:Js代码1.functionf(x){returnx*x};//function语句2.varf=newFunction(,,xn/"returnx*x;n);//Function()构造函数1.varf=function(x){returnx*x;};〃函数直接如果函数无明确的返回值,或调用

3、了没有参数的return语句,那么它真正返回的值是undefinedoFunctionQ构造函数函数实际上是功能完整的对象。Function类可以表示开发者定义的任何函数。用Function类直接创建函数的语法如下:varfunction_name二newfunction(argl,arg2,argN,function_body)在上面的形式中,每个arg都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数必须是字符串。varsayHi=newFunctionC'sName","sMessage","alertC

4、Hello1+sName+sMessage);");sayHi("jzj,","你好!”);//Hellojzj,你好!函数名只是指向函数的变量,那么可以把函数作为参数传递给另一个函数吗?答案是可以的,请:Js代码functioncallAnotherFunc(fnFunction,vArgument){fnFunction(vArgument);vardoAdd=newFunction("iNum",Halert(iNum+10)H);callAnotherFunc(doAddz10);〃输出”20”注意:尽管可以使用F

5、unction构造函数创建函数,但最好不要使用它,因为用它定义函数比用传统方式要慢得多。不过,所有函数都应看作Function类的实例。如果你定义的函数没有参数,那么可以只需给构造函数传递一个字符串(即函数的主体)即可。注意:传递给构造函数FunctionO的参数中没有一个用于说明它要创建的函数名。用Function(胸造函数创建的未命名函数有时被称为“匿名函数”。FunctionO函数允许我们动态地建立和编译一个函数,它不会将我们限制在function语句预编译的函数体中。函数直接量函数直接量是一个表达式,它可以定义匿名

6、函数。函数直接量的语法和function语句非常相似,只不过它被用作表达式,而不是用作语句,而且也无需指定函数名。语法:Js代码varfuncfunction(argOzargl,...argN){statements};〃函数直接量虽然函数直接量创建的是未命名函数,但是它的语法也规定它可以指定函数名,这在编写调用自身的递归函数时非常有用,例如:Js代码varf=functionfact(x){if(x<=1){return1;}else{returnx*fact(x-1);}};注:它并没有真正创建一个名为facto函数

7、,只是允许函数体用这个名字来引用自身。JavaScriptl.5之前的版本中没有正确实现这种命名的函数直接量。•函数引用函数名并没有什么实质意义,它不过是用来保存函数的变量名字,可以将这个函数赋给其他变量,它仍然会以相同方式起作用:Js代码functionsquare(x){returnx*x;}vara=square;varb=a(5);//b为25这有点像C++中的函数指针了。FunctionQ构造函数和函数直接量差别FunctionQ构造函数和函数直接量之间的差别有一点就是:使用构造函数Function。创建的函数不

8、使用词法作用域,相反的,它们总是被顶级函数来编译,如:Js代码vary="global1';functionconstructFunctionQ{vary=“local”;//Function()构造函数returnnewFunction(nretumy;”);〃不使用局部作用域}functioncon

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。