JSダイナミック呼び出し方法名
1848 ワード
まずJSの関数を見てください.
JavaScript eval関数
定義と用法
eval()関数は、ある文字列を計算し、JavaScriptコードを実行します.
構文
説明
ストリングス
必要です.計算する文字列には、計算するJavaScript式または実行する語句が含まれています.
戻り値
stringを計算して得られた値(あれば).
説明
この方法は元の文字列だけをパラメータとして受け入れ,もしstringパラメータが元の文字列でないなら,この方法は何の変化もなしに戻るであろう.したがって、eval()関数のためにStringオブジェクトを渡すのはやめてください.
eval属性を上書きしようとした場合、またはeval()方法を別の属性に付与し、この属性を通じて呼び出した場合、ECMAScript実装はEvarr異常をスローすることができます.
投げ出す
パラメータに正当な表現とステートメントがない場合は、SyntxErr異常をスローします.
eval()を不正に呼び出したら、Evarr異常をスローします.
eval()に渡されたJavascriptコードに異常が発生した場合、evalはこの異常をコーディネーターに伝達します.
ヒントとコメント
ヒント:eval()の機能は非常に強力ですが、実際に使う場合は多くありません.
実例
例1
本例では、いくつかの文字列にeval()を使い、その結果を確認します.
他の場合、eval()が戻った結果を見てください.
以下は自分で書いた例です.
コール(「showmsg」)function call(functionName){ eval("this."+functionName+"");function showmsg(){ alert("success");
evalはあなたのスペル文字列を自動的に方法として認識して呼び出します.
しかし、弊害も大きいです.ある人があなたのところの名前を変えると、あなたの任意の方法が呼び出されます.
第二の方法は主に自分で定義する方法として使われます.
主に第二の方法は特定の方式で書く必要があります.
function call(functionName){ showmsgs["showmsg"();var showmsgs={showmsg:function(){ alert("success");"}call("showmsg")
JavaScript eval関数
定義と用法
eval()関数は、ある文字列を計算し、JavaScriptコードを実行します.
構文
eval(string)
パラメータ説明
ストリングス
必要です.計算する文字列には、計算するJavaScript式または実行する語句が含まれています.
戻り値
stringを計算して得られた値(あれば).
説明
この方法は元の文字列だけをパラメータとして受け入れ,もしstringパラメータが元の文字列でないなら,この方法は何の変化もなしに戻るであろう.したがって、eval()関数のためにStringオブジェクトを渡すのはやめてください.
eval属性を上書きしようとした場合、またはeval()方法を別の属性に付与し、この属性を通じて呼び出した場合、ECMAScript実装はEvarr異常をスローすることができます.
投げ出す
パラメータに正当な表現とステートメントがない場合は、SyntxErr異常をスローします.
eval()を不正に呼び出したら、Evarr異常をスローします.
eval()に渡されたJavascriptコードに異常が発生した場合、evalはこの異常をコーディネーターに伝達します.
ヒントとコメント
ヒント:eval()の機能は非常に強力ですが、実際に使う場合は多くありません.
実例
例1
本例では、いくつかの文字列にeval()を使い、その結果を確認します.
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
var x=10
document.write(eval(x+17))
出力:200
4
27
例2他の場合、eval()が戻った結果を見てください.
eval("2+3") // 5
var myeval = eval; // EvalError
myeval("2+3"); // EvalError
次のコードを使ってeval()のパラメータが適法かどうかを検出できます.try {
alert("Result:" + eval(prompt("Enter an expression:","")));
}
catch(exception) {
alert(exception);
}
一つ目の方法はjsの中のevalを使うことです.以下は自分で書いた例です.
コール(「showmsg」)function call(functionName){ eval("this."+functionName+"");function showmsg(){ alert("success");
evalはあなたのスペル文字列を自動的に方法として認識して呼び出します.
しかし、弊害も大きいです.ある人があなたのところの名前を変えると、あなたの任意の方法が呼び出されます.
第二の方法は主に自分で定義する方法として使われます.
主に第二の方法は特定の方式で書く必要があります.
function call(functionName){ showmsgs["showmsg"();var showmsgs={showmsg:function(){ alert("success");"}call("showmsg")