递归父函数调用者

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归父函数调用者相关的知识,希望对你有一定的参考价值。

This snippet allows to know the parent function caller name of any level from the calling function.
  1. <SCRIPT LANGUAGE="javascript" TYPE="text/javascript">
  2. Function.prototype.myname = function() { return this.toString().substr( 0, this.toString().indexOf( "(" ) ).replace( "function ", "" ) ; }
  3. Function.prototype.callername = function( _level )
  4. {
  5. // level 0 is this functon
  6. _level = parseInt( _level, 10 ); if ( isNaN( _level ) || _level < 0 ) _level = 0 ;
  7. var _eval_str = "arguments.callee" ;
  8. for( var _l = 0 ; _l <= _level ; _l++ ) _eval_str += ".caller" ;
  9.  
  10. _eval_str += ".myname();" ;
  11. return eval( _eval_str ) ;
  12. }
  13.  
  14. function _child_caller()
  15. {
  16. document.write( "This function is " + arguments.callee.callername(0) ) ;
  17. document.write( "<br>" );
  18. document.write( "Parent function is " + arguments.callee.callername(1) ) ;
  19. document.write( "<br>" );
  20. document.write( "Grand Parent function is " + arguments.callee.callername(2) ) ;
  21. }
  22.  
  23. function _parent_caller()
  24. {
  25. _child_caller() ;
  26. }
  27.  
  28. function _grand_parent_caller()
  29. {
  30. _parent_caller() ;
  31. }
  32.  
  33. _grand_parent_caller();
  34. </SCRIPT>

以上是关于递归父函数调用者的主要内容,如果未能解决你的问题,请参考以下文章

isMemberOfClassisKindOfClass原理分析

在代码中获取调用者函数的名字

java中,当实例化子类时会递归调用父类中的构造方法。这个说法对么?为啥

什么是多态(polymorphism)?

机器级表示总结二, 过程,递归,数组,结构与联合,调试及优化

机器级表示总结二, 过程,递归,数组,结构与联合,调试及优化