ホームページ  >  記事  >  ウェブフロントエンド  >  JS動的呼び出しメソッド名の紹介_javascriptスキル

JS動的呼び出しメソッド名の紹介_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:08:311665ブラウズ

まずは JS の関数を見てみましょう

JavaScript eval() 関数
定義と使用法

eval() 関数は、特定の文字列を計算し、その中の JavaScript コードを実行できます。
構文

eval(string)

パラメータ 説明

string 必須。評価する JavaScript 式または実行するステートメントを含む、評価する文字列。

戻り値

文字列 (存在する場合) を評価して取得した値。

説明

このメソッドは、パラメータとして元の文字列のみを受け入れます。文字列パラメータが元の文字列でない場合、このメソッドは変更せずに戻ります。したがって、String オブジェクトを引数として eval() 関数に渡さないでください。

ECMAScript 実装では、eval プロパティをオーバーライドしようとしたり、eval() メソッドを別のプロパティに割り当ててそのプロパティを通じて呼び出そうとした場合に、EvalError 例外がスローされることが許可されています。

スロー

パラメータに正当な式やステートメントがない場合、SyntaxError 例外がスローされます。

eval() が不正に呼び出された場合、EvalError 例外がスローされます。

eval() に渡された Javascript コードが例外を生成した場合、eval() は呼び出し元に例外を渡します。

ヒントとメモ

ヒント: eval() 関数は非常に強力ですが、実際の使用ではほとんど使用されません。



例 1

この例では、いくつかの文字列に eval() を適用し、返された結果を確認します。

コードをコピーします コードは次のとおりです:



出力:

200
4
27

例 2

他の場合に eval() によって返される結果を確認します:
コードをコピー コードは次のとおりです:

eval("2 3") // 5 を返します
var myeval = eval; // EvalError 例外がスローされる可能性があります
myeval(" 2 3"); // EvalError 例外がスローされる可能性があります

次のコードを使用して、eval() のパラメーターが正当かどうかを確認できます:
コードをコピー コードは次のとおりです:

try {
alert("Result:" eval(prompt("式を入力してください:" ,"" )));
}

catch(例外) {
alert(例外);
}

最初の方法は eval を使用することですin js

以下は自分で書いた例です
コードをコピーします コードは次のとおりです:

call("showmsg");

関数 call(functionName){
eval("this." functionName "()");
function showmsg(){
alert("success");
}

eval は接続した文字列をメソッドとして自動的に認識して呼び出すことができます。

しかし、呼び出し先のメソッドの名前を変更することで、誰かがメソッドを呼び出すことができるというデメリットも大きいと想像してください。

2 番目のメソッドは主に自己定義メソッドとして使用されます

主な理由は、2 番目のメソッドは

function call(functionName) {
showmsgs["showmsg"]()
}

var showmsgs = { showmsg: function () {
alert("success");
}
}
call("showmsg");
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。