jsクラスで外部関数名を取得する方法とコード


例えば、一つのクラスで方法を設定したいですが、一つの方法によってクラス変数に保存できます。必要な時はクラス変数にアクセスして得られます。通常、私たちがインスタンスを生成すると、例えば:var temp=new Topnet Tree()属性を設定することによって方法が導入されると、関数名ではなく関数の内容が入ってきます。temp.fileAction=fnTestのように; //fnTestは関数であるので、この機能を実現するための方法を書きました。入力内容をargmentsによって判定します。入力内容が空で、どの内容から一つのパラメータが入ってくるかを実行しないと、パラメータなしの関数が複数のパラメータに入ってくることを表します。最初のパラメータビット関数名を表し、後は各パラメータです。

 1 TopnetTree.prototype.setFileAction=function(){ 
 2     var fnName,fnArgs=""; 
 3     if(arguments.length==0){ 
 4         return 0; 
 5     }else if(arguments.length==1){ 
 6         fnName=arguments[0]; 
 7     }else{ 
 8         fnName=arguments[0]; 
 9         for(var i=1;i<arguments.length;i++){ 
10             fnArgs+=","+arguments[i]; 
11         } 
12         fnArgs=fnArgs.replace(",",""); 
13     } 
14          
15     this.fileAction=fnName+"("+fnArgs+")"; 
16 }