jsクラスで外部関数名を取得する方法とコード
1000 ワード
例えば、一つのクラスで方法を設定したいですが、一つの方法によってクラス変数に保存できます。必要な時はクラス変数にアクセスして得られます。通常、私たちがインスタンスを生成すると、例えば: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 }