JavaScript/関数名を文字列で指定して動的に呼び出す機構(evalを使わず)
をテンプレートにして作成- Yoshino-tech
開始行:
*関数名を文字列で指定して呼び出せる機構 [#jbd8dde5]
JavaScriptでは、文字列を組み合わせて実行文を作り、evalで...
関数を文字列で呼び出すにあたって、evalを使わなくていい方...
+関数もオブジェクトとして扱う(変数のように扱える)
+連想配列が使える (文字列をキーとする配列が使える)
という2つのJavaScriptの特徴を使えば、evalを使わなくても、~
動的な文字列による関数呼び出しができます。
関数名を文字列で指定して呼び出すやりかたが使えます。
グローバルスコープの関数に限っては、window["関数名"](引数...
**書き方 [#u9c02d4e]
1.関数格納用の連想配列の定義
#code(JavaScript){{
関数格納連想配列名 = new Array();
}}
2. 1.で定義した連想配列に関数メンバを追加
#code(PRE){{
関数格納連想配列.関数名 = function ( 引数 ){
// 関数定義
}
// または
関数格納連想配列["関数名"] = function ( 引数 ){
// 関数定義
}
}}
3.文字列を使って呼び出す
#code(PRE){{
関数格納連想配列名["関数名"]( 引数 );
}}
という流れになります。
例:
#code(JavaScript){{
funcObj = new Array; // グローバルで関数格納用の連想配列...
// メンバを登録
funcObj.A1 = funcion( str )
{
alert("A1:" + str );
}
funcObj.B2 = function(str)
{
alert("B2:" + str);
}
// 文字列で名前を指定して呼び出し
var typeF = "A";
var num = 1;
funcObj[ typeF + num ]("テスト");
}}
**例 [#h91580d5]
#code(JavaScript){{
<html>
<head>
<script type="text/javascript">
var id = "test1";
var dc = "ok";
var aa = "1";
var bb = "3";
// 関数を格納する連想配列
var funcObj = new Array();
// 文字列で指定できる関数連想配列への関数の追加
funcObj.test1_ok = function(id,dc){
alert(id) //この結果、1が表示されればOK
}
function test_count(id,dc,aa,bb)
{
funcObj[id+"_"+dc](aa,bb);
}
</script>
</head>
<body onload="test_count(id,dc,aa,bb);">
<body>
</html>
}}
終了行:
*関数名を文字列で指定して呼び出せる機構 [#jbd8dde5]
JavaScriptでは、文字列を組み合わせて実行文を作り、evalで...
関数を文字列で呼び出すにあたって、evalを使わなくていい方...
+関数もオブジェクトとして扱う(変数のように扱える)
+連想配列が使える (文字列をキーとする配列が使える)
という2つのJavaScriptの特徴を使えば、evalを使わなくても、~
動的な文字列による関数呼び出しができます。
関数名を文字列で指定して呼び出すやりかたが使えます。
グローバルスコープの関数に限っては、window["関数名"](引数...
**書き方 [#u9c02d4e]
1.関数格納用の連想配列の定義
#code(JavaScript){{
関数格納連想配列名 = new Array();
}}
2. 1.で定義した連想配列に関数メンバを追加
#code(PRE){{
関数格納連想配列.関数名 = function ( 引数 ){
// 関数定義
}
// または
関数格納連想配列["関数名"] = function ( 引数 ){
// 関数定義
}
}}
3.文字列を使って呼び出す
#code(PRE){{
関数格納連想配列名["関数名"]( 引数 );
}}
という流れになります。
例:
#code(JavaScript){{
funcObj = new Array; // グローバルで関数格納用の連想配列...
// メンバを登録
funcObj.A1 = funcion( str )
{
alert("A1:" + str );
}
funcObj.B2 = function(str)
{
alert("B2:" + str);
}
// 文字列で名前を指定して呼び出し
var typeF = "A";
var num = 1;
funcObj[ typeF + num ]("テスト");
}}
**例 [#h91580d5]
#code(JavaScript){{
<html>
<head>
<script type="text/javascript">
var id = "test1";
var dc = "ok";
var aa = "1";
var bb = "3";
// 関数を格納する連想配列
var funcObj = new Array();
// 文字列で指定できる関数連想配列への関数の追加
funcObj.test1_ok = function(id,dc){
alert(id) //この結果、1が表示されればOK
}
function test_count(id,dc,aa,bb)
{
funcObj[id+"_"+dc](aa,bb);
}
</script>
</head>
<body onload="test_count(id,dc,aa,bb);">
<body>
</html>
}}
ページ名:
[
トップ
] [
新規
|
一覧
|
単語検索
|
ヘルプ
|
ログイン
]