盘点JavaScript中Function三大用途(1)(2)
2.作为对象方法
JavaScript在解析代码时,会为声明或定义的函数指定调用对象。所谓调用对象,就是函数的执行环境。如果函数体内有以关键字this声明的变量,则this引用的就是调用对象。
事实上,在普通的函数中,也存在调用对象,只不过这个调用对象是默认的全局window对象而已。例如:
varproduct=window.multiply(128,128);//product=16384
这说明,默认情况下,在全局作用域中定义或声明的函数的调用对象就是window。
在面向对象编程中,通常将作为对象成员的函数称为方法。例如:
- vardog={};
- dog.name=“heibao”;
- dog.age=“3months”;
- dog.shout=function(){
- return“Hello,Mynameis“+this.name+”andIam”+this.age+”old!”;
- }
- dog.shout();//“Hello,MynameisheibaoandIam3monthsold!”
有意思的是,对象也可以借用其他对象的方法:
- varcat={};
- cat.name=“xiaohua”;
- cat.age=“2years”;
- cat.greet=dog.shout;
- cat.greet();//“Hello,MynameisxiaohuaandIam2yearsold!”
另外,使用函数对象的call和apply方法,还可以动态指定函数或方法的调用对象:
- dog.shout.call(cat);
- //“Hello,MynameisxiaohuaandIam2yearsold!”
- 或者
- dog.shout.apply(cat);
- //“Hello,MynameisxiaohuaandIam2yearsold!”






