JavaScript权威指南(第6版) --- 自学笔记(21) --- 函数定义表达式、调用表达式

函数定义表达式
定义一个js函数,表达式的值就是这个新定义的函数,从某种意义来讲,函数定义表达式可称为"函数直接量"。
一个典型的函数定义表达式包含关键字function,跟随其后的是一对圆括号,括号内是一个以逗号分隔的列表,列表含有0个或者多个标识符(参数名),然后再跟随一个有花括号包裹的js代码段(函数体)。

var square = function(x) { 
    return x * x; 
}

函数定义表达式同样也可以包含函数的名字,函数也可以通过函数语句来定义,而不是函数表达式。

function square(x) {
    return x * x; 

调用表达式
js中的调用表达式,是一种调用(或者执行)函数或者方法的语法表示,它以一个函数表达式开始,这个函数表达式指代了要调用的函数,函数表达式后跟随一对圆括号,圆括号内是一个以逗号隔开的参数列表,参数可以有0个或者多个。

f();
Math.max(x, y, z);
a.sort(); 

当对调用表达式进行求值的时候,
首先计算函数表达式,然后计算参数表达式,得到一组参数值。如果函数表达式的值不是一个可调用的对象,则抛出一个类型错误的异常;
然后实参的值会依次赋值给形参,这些形参是定义函数时指定的;
接下来开始执行函数体,如果函数使用return语句给出一个返回值,那么这个返回值就是整个调用表达式的值,否则调用表达式的值就是undefined。
函数调用,包括当形参表达式的个数和函数定义中实参的个数不匹配的时候,在后期会详细讲解。

任何一个调用表达式,都包含一对圆括号,和左括号之前的表达式,如果这个表达式是一个属性访问表达式,那么这个调用叫方法调用。在方法调用中,执行函数体的时候,作为属性访问主题的对象和数组便是其调用方法内this的指向。这种特性使得在面向对象编程的范例中,函数可以调用其宿主对象。
并不是方法调用的调用表达式,通常使用全局对象作为this关键字的值,然而在ECMAScript 5中,那些通过严格模式定义的函数在调用时,将使用undefined作为this的值,this不会指向全局变量。(后面会详细讲解)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值