JavaScript学习(4.3):调用表达式和对象创建表达式

来源:互联网 发布:淘宝lol皮肤cdk可信吗 编辑:程序博客网 时间:2024/05/04 15:36
4.5 调用表达式

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

f(0)    //f是一个函数表达式    0是一个参数表达式
Math.max(x,y,x)  //Math.max是一个函数,x,y,z是参数
a.sort() //a.sort是一个函数  没有参数

     当对调用表达式进行求值时,首先计算函数表达式,然后计算参数表达式,得到一组参数值,如果函数表达式的值不是一个可调用的对象,则会抛出一个类型错误异常。然后实参的值会一次赋值给形参,形参是定义函数时指定的,接下来执行函数体。如果函数使用return语句给出一个返回值,那么这个返回值就是整个调用表达式的值,否则调用表达式的值是undefined。

     任何调用表达式都包含一对圆括号和坐圆括号之前的表达式,如果这个表达式是一个属性访问表达式,那么这个调用称为“方法调用”。在方法调用中,执行函数体的时候,作为属性访问主题的对象和数组便是其调用方法内this的指向。


4.6 对象创建表达式

    对象创建表达式创建一个对象并调用一个函数(构造函数)初始化新对象的属性。对象创建表达式和函数调用表达式类似,区别是对象创建表达式之前多了一个new关键字:
new Object()
new Point(1,2)
    如果一个对象创建表达式不需要传入任何参数给构造函数,那么这对空圆括号是可以省略的:
new Object
new Date

    计算一个对象创建表达式时,JavaScript首先创建一个新的空对象,然后JavaScript通过传入指定的参数并将这个新对象当做this的值来调用一个指定的函数。这个函数可以使用this来初始化这个新创建对象的属性。那些被当成构造函数的函数不会返回一个值,并且这个新创建并被初始化后的对象就是整个对象创建表达式的值。如果一个构造函数确实返回一个对象值,那么这个对象就作为整个对象创建表达式的值,而新创建的对象就废弃了。


0 0