预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

javascript中Function类型详细介绍javascript中Function类型详细介绍function类型,毋庸置疑是js中相当重要的一个玩意。1.这玩意首先是一个对象,也就是说它是一个引用类型。陈述:一听说是对象,是不是很有一种它的基类是object对象错觉感,No,它和object是独立的2个东西。当你typeoffunction时,返回的是funciton并非object2.每个函数都是Function对象的一个实例,它与其他引用对象一样具有属性和方法。由于它是对象所以函数名是指向函数对象的指针关于函数的声明的语法支持://方式1functionfun(num1,num2){returnnum1+num2;}//方式2varfun=function(num1,num2){returnnum1+num2;};//方式3varfun=newFunction("n1","n2","returnn1+n2");讲解:3种方式都能完成一个函数的声明,但各有不同。方式1理解为一个函数的`声明,方式2,方式3理解为函数表达式。(方式3不推荐使用,原因会导致解析2次代码,先解释常规ECMAScript代码,在解释传入的参数,这种写法,参数可以是N个,但是最后一个参数视为函数主体)为什么说不同,主要在于,js解析器对函数声明和函数表达式解析的不同。解析器会优先读取函数申明,js引擎在执行时会将函数声明自动放到执行环境的最顶端。而函数表达式则不同,当执行到函数表达式时,才会真正去被解释执行。关于这点理解很重要!看代码console.log(typeoffun);//"function"console.log(typeoffun2);//"undefined"console.log(typeoffun3);//"undefined"functionfun(n1,n2){returnn1+n2;}varfun2=function(n1,n2){returnn1+n2;}varfun3=newFunction("n1","n2","returnn1+n2;");3.为什么函数没有重载?这个问题要从js的语言特性来考虑。在第2条已经说了,函数名称只是指向函数对象的一个指针。根据指针的概念去理解就清楚了。看代码示例:functionfun(n1){returnn1+100;}functionfun(n1){returnn1+200;}console.log(fun(1));//201//以上写法在解析后应为varfun=function(n1){returnn1+100;}fun=function(n1){returnn1+200;}//fun的引用被覆盖了console.log(fun(1));//201今天就写到这,都是写基本概念,希望对这块有盲点的起到帮助!有什么需要指正的地方,希望各位霸气留言指正。