`
tntxia
  • 浏览: 1486938 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对于Javascript 中函数的详细简介(二)

阅读更多

Function是Javascript中是一个特殊的对象,他是第一类数据类型。那就是说我们可以像一个普通的Javascript对象一样对他做很多的操作。

1.判断对象的属性

js 代码
  1. function Ball()       // it may seem odd, but this declaration   
  2. {                     // creates a object named Ball   
  3.   i=1;   
  4. }                        
  5. alert(typeof Ball);     // produces "function"   

2.给函数添加属性

js 代码
  1. function Ball()       // it may seem odd, but declaration   
  2. {                     // creates an object named Ball, and you can    
  3. }                     // refer to it or add properties to it like below   
  4. Ball.callsign="The Ball"// add property to Ball   
  5. alert(Ball.callsign); // produces "The Ball"   
  6.     

3.操作函数的指针

js 代码
  1. function myFunction(message)    
  2. {    
  3.   alert(message);   
  4. }   
  5. var ptr=myFunction;  // ptr points to myFunction   
  6. ptr("hello");        // executes myFunction which will prints "hello"   
  7.     

 

函数的嵌套

Javascript的函数允许函数的嵌套。

例如:

 

js 代码
  1. function getHalfOf(num1, num2, num3)        
  2. {    
  3.   function calculate(number)   
  4.   {   
  5.     return number/2;   
  6.   }   
  7.   
  8.   var result="";   
  9.   result+=calculate(num1)+" ";   
  10.   result+=calculate(num2)+" ";   
  11.   result+=calculate(num3);   
  12. }            
  13. var resultString=getHalfOf(10,20,30);   
  14. alert(resultString);         // prints "5 10 15"   

 

嵌套的函数只能在函数内使用。也就是你不能使用getHalfOf.calculate();这个和上面讨论的一致,函数只是被编译,但是没有被执行。你可以会考虑命名冲突。比如说:

 

js 代码
  1. function calculate(number)   
  2. {   
  3.   return number/3;   
  4. }   
  5.   
  6. function getHalfOf(num1, num2, num3)        
  7. {    
  8.   function calculate(number)   
  9.   {   
  10.     return number/2;   
  11.   }   
  12.   
  13.   var result="";   
  14.   result+=calculate(num1)+" ";   
  15.   result+=calculate(num2)+" ";   
  16.   result+=calculate(num3);   
  17. }            
  18. var resultString=getHalfOf(10,20,30);   
  19. alert(resultString);         // prints "5 10 15"   

 

在这种情况下,翻译器会优先查找内部地址空间,所以他会使用嵌套的那个calculate函数。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics