在JavaScript中一共有4种调用模式:
函数调用模式
方法调用模式
构造器调用模式
间接调用模式,通过call()和apply()进行
1. 函数调用模式
普通函数调用模式,如:
functionprintProps(o){
……
}
printProps({x:1});
在一个调用中,
(1)每个参数表达式计算的结果作为实参传递给声明函数时定义的形参;
(2)this被绑定到全局变量
var myObject = {value:1};
value= 2;
myObject.printProps = function(){var printValue = function(){
console.log(this.value);};
printValue();
console.log(this.value);
}
myObject.printProps();
此时的运行结果是:
2
1
我们注意到,在printValue()函数在执行时,this.value值为2,也就是说,this指向的是全局对象,而不是myObject。
(3)返回值:函数的返回值成为调用表达式的值。I. 如果函数返回是解释器到达结尾,也就是没有执行到return XXX的语句。返回值为undefined。 II. 如果函数返回是因为接受器执行到return xxx语句,返回return之后的值