龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

盘点JavaScript中Function三大用途(1)(2)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
2.作为对象方法 JavaScript在解析代码时,会为声明或定义的函数指定调用对象。所谓调用对象,就是函数的执行环境。如果函数体内有以关键字this声明的变

2.作为对象方法

JavaScript在解析代码时,会为声明或定义的函数指定调用对象。所谓调用对象,就是函数的执行环境。如果函数体内有以关键字this声明的变量,则this引用的就是调用对象。

事实上,在普通的函数中,也存在调用对象,只不过这个调用对象是默认的全局window对象而已。例如:

varproduct=window.multiply(128,128);//product=16384

这说明,默认情况下,在全局作用域中定义或声明的函数的调用对象就是window。

在面向对象编程中,通常将作为对象成员的函数称为方法。例如:

  1. vardog={};  
  2. dog.name=“heibao”;  
  3. dog.age=“3months”;  
  4. dog.shout=function(){  
  5. return“Hello,Mynameis“+this.name+”andIam”+this.age+”old!”;  
  6. }  
  7. dog.shout();//“Hello,MynameisheibaoandIam3monthsold!”  
  8.  

有意思的是,对象也可以借用其他对象的方法:

  1. varcat={};  
  2. cat.name=“xiaohua”;  
  3. cat.age=“2years”;  
  4. cat.greet=dog.shout;  
  5. cat.greet();//“Hello,MynameisxiaohuaandIam2yearsold!” 

另外,使用函数对象的call和apply方法,还可以动态指定函数或方法的调用对象:

  1. dog.shout.call(cat);  
  2. //“Hello,MynameisxiaohuaandIam2yearsold!”  
  3.  
  4. 或者  
  5.  
  6. dog.shout.apply(cat);  
  7. //“Hello,MynameisxiaohuaandIam2yearsold!”  

精彩图集

赞助商链接