Javascript之构造函数、函数直接量区别介绍.docx.pdf

上传人:tbuqq 文档编号:5616048 上传时间:2020-07-02 格式:PDF 页数:6 大小:120.59KB
返回 下载 相关 举报
Javascript之构造函数、函数直接量区别介绍.docx.pdf_第1页
第1页 / 共6页
Javascript之构造函数、函数直接量区别介绍.docx.pdf_第2页
第2页 / 共6页
Javascript之构造函数、函数直接量区别介绍.docx.pdf_第3页
第3页 / 共6页
Javascript之构造函数、函数直接量区别介绍.docx.pdf_第4页
第4页 / 共6页
Javascript之构造函数、函数直接量区别介绍.docx.pdf_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Javascript之构造函数、函数直接量区别介绍.docx.pdf》由会员分享,可在线阅读,更多相关《Javascript之构造函数、函数直接量区别介绍.docx.pdf(6页珍藏版)》请在三一文库上搜索。

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

2、arg2, argN, f unction_body);/Function()构造函数 3.var func =function(argO, argl, ? argN) statements ;/ 函数直接量 示例: Js代码 1. function f(x)return x*x;/function 语句 2. var f = new Function( , xn/“return x*x; n); /Function()构造函数 3.var f = function(x)return x*x;函数直接 它真正返回的值是undefinedo FunctionQ构造函数 函数实际上是功能完整的对象

3、。Function类可以表示开发者定义的任 何函数。用Function类直接创建函数的语法如下: var function_name 二new function(argl, arg2, argN, fun ction_body) 在上面的形式中,每个arg都是一个参数 , 最后一个参数是函数主体 ( 要执行的代码 ) 。这些参数必须是字符串。 var sayHi = new FunctionCsName“, “sMessage“, “alertCHell o 1 + sName + sMessage);“); sayHi(“jzj,“,“你好 ! ” );/Hello jzj,你好 ! 函数名

4、只是指向函数的变量,那么可以把函数作为参数传递给另一个 函数吗?答案是可以的,请: Js代码function callA no the rFunc(fnFu nction, vArgument) fnF unctio n(vArgume nt); var doAdd = new Function(“iNum“, Halert(iNum + 10)H); callAnotherFunc (doAddz 10); 输出” 20 ” 注意:尽管可以使用Function构造函数创建函数,但最好不要使用 如果函数无明确的返回值,或调用了没有参数的return语句, 那么 它,因为用它定义函数比用传统方式

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

6、 Js代码 function(argOz argl, . argN) statements ; 函 数直接量 虽然函数直接量创建的是未命名函数,但是它的语法也规定它可以指 定函数名,这在编写调用自身的递归函数时非常有用,例如: Js代码 var f = function fact(x) if (x = 1) return 1; var func else return x * fact(x - 1); ; 注:它并没有真正创建一个名为facto函数, 只是允许函数体用这个名 字来引用自身。JavaScriptl.5之前的版本中没有正确实现这种命名的 函数直接量。 ?函数引用 函数名并没有什么实

7、质意义,它不过是用来保存函数的变量名字,可 以将这个函数赋给其他变量, 它仍然会以相同方式起作用: Js代码 function square(x)return x*x; var a = square; var b = a(5);/b 为25 这有点像C+ +中的函数指针了。 FunctionQ构造函数和函数直接量差别 FunctionQ构造函数和函数直接量之间的差别有一点就是:使用构造 函数Function。创建的函数不使用词法作用域,相反的,它们总是被 顶级函数来编译,如: Js代码var y = “global 1; function constructFunctionQ var y = “ local”; /Function()构造函数 return new Function( nretum y; ” );不使用局部作用域 function constFunctionQ var y = “local“; 函数直接量 var f 二function () return y;使用局部作用域; return f; 作用域 alert(constructF unction ()(); 显示lobal ,因为函数直接量返回的函数并使用局部作用域alert(c onstFun ctionQO); 显示global ,因为FunctionQ构造函数返的函数并不使用局部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1