実行したい関数の名前を含む変数があると仮定して、window
を使って実行することができます。変数からオブジェクト内の関数を実行する
var func = "myFunc",
myFunc = function(){ ... };
window[func](); // run the function in the func var
ただし、意図した機能がオブジェクトの内部にある場合は機能しません。
var obj = {
foo: {
hey: function(){ ... }
}
};
obj.foo.hey(); // this runs
var func = "obj.foo.hey";
window[func](); // this doesn't
eval()
が付属していますことを、多くのセキュリティ上の考慮事項を導入しないように、私はeval()
を使用することができますが、それはそれを回避することができますかしら。
上記のように関数がオブジェクト内にある場合、変数で指定された関数を実行するにはどうすればよいですか?
http://stackoverflow.com/questions/1184123/is-it-possible-to-add-dynamically-named-properties-to-javascript-object – Teemu