Function类可以表示开发者定义的任何函数_函数的定义及其表示

2020-02-27 其他范文 下载本文

Function类可以表示开发者定义的任何函数由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“函数的定义及其表示”。

合肥合肥开发票有限公司是2002年经国家财政局批准、工商注册登记的财税咨询公司。本公司实力雄厚,有着良好的社会关系,了解财税法律法规,实行规范管理及严格履行的保密制度。专业从事财务代理、税务代理、财税咨询和工商代理等业务的专业机构。在全国各地设有分公司,与全国多家公司有着密切的业务联系,可以为企业单位代理:财务、税务及相关信息咨询,包括增值税、商品销售、建筑工程、运输、广告、服务等,公司成立多年一直坚持诚信原则,立足于市场之中。本公司郑重承诺提供咨询及服务绝对真实可靠,欢迎合作。公司遵循独立客观、Function类

定义

Function类可以表示开发者定义的任何函数,用Function类直接创建函数的语法如下:

var function_name=new Function(agrument1,agrument2,...,argumentN,function_body);每个argument都是一个参数,最后一个参数是函数主体(要执行的代码)。

示例:

复制代码 代码如下:

function sayHi(sName,sMeage){

alert(“Hello ”+sName+“,”+sMeage);

}

还可以如下定义它:

var sayHi=new Function(“sName”,“sMeage”,“alert(”Hello“+sName+”,“+sMeage);”);

注:尽管可用Function构造函数创建函数,但最好不要使用它,因为用它定义函数比用传统方式要慢得多。不过,所有函数都应看作是Function类的实例。

属性和方法

因为函数是引用类型,所以它们也有属性和方法,ECMAScript定义的属性length声明了函数期望的参数个数,例如:

复制代码 代码如下:

function doAdd(iNum){

alert(iNum+10);

}

function sayHi(){

alert(“Hi”);

}

alert(doAdd.length);//outpus 1

alert(sayHi.length);//outpus 0

Function对象也有与所有对象共享的标准valueOf()方法和toString()方法,这两个方法返回的都是函数的源代码,在调试时尤其有用。

例如:

复制代码 代码如下:

function doAdd(iNum){

alert(iNum+10);

}

alert(doAdd.toString());

这段代码输出了doAdd()函数的文本。

闭包

定义

所谓闭包,是指词法表示包括不必计算的变量的函数,也就是说,该函数能使用函数外定义的变量。在ECMAScript中使用全局变量是一个简单的闭包实例。

示例:

复制代码 代码如下:

var sMeage=“Hello World”;

function sayHelloWold(){

alert(sMeage);

}

sayHelloWorld();

在一个函数中定义另一个函数会使闭包变得更复杂,如:

复制代码 代码如下:

var iBaseNum=10;

function addNumbers(iNum1,iNum2){

function doAddtion(){

return iNum1+iNum2+iBaseNum;

}

return doAddtion();

}

这里函数addNumbers()包括函数doAddtion()(闭包)。内部函数是个闭包,因为它将获取外部函数的参数iNum1和iNum2以及全局变量iBaseNum的值。addNumbers()的最后一步调用了内部函数,把两个参数和全局变量相加,并返回它们的和。这里要掌握的重要概念是doAddtion()函数根本不接受参数,它使用的是从执行环境中获取的。

可以看到,闭包是ECMAScript中非常强大多用的一部分,可以用于执行复杂的计算。就像使用任何高级函数一样,在使用闭包时要当心,因为它们可能会变得非常复杂。本文示例代码

复制代码 代码如下:

《JavaScript高级程序设计》读书笔记之八:Function类及闭包

function doAdd(iNum){

alert(iNum+10);

}

function sayHi(){

alert(“Hi”);

}

function lengthProperty(){

alert(doAdd.length);

alert(sayHi.length);

}

function valueOfMethod(){

alert(doAdd.valueOf());

}

function toStringMethod(){

alert(doAdd.toString());

}

var sMeage=“Hello World”;

function sayHelloWorld(){

alert(sMeage);

}

function demoOne(){

sayHelloWorld();

}

var iBaseNum=10;

function addNumbers(iNum1,iNum2){

function doAddtion(){

return iNum1+iNum2+iBaseNum;

}

return doAddtion();

}

function demoTwo(){

alert(addNumbers(1,2));

}

Length:

valueOf()/toString():

闭包:

《Function类可以表示开发者定义的任何函数.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
Function类可以表示开发者定义的任何函数
点击下载文档
相关专题 函数的定义及其表示 开发者 函数 定义 函数的定义及其表示 开发者 函数 定义
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文