1

関数名の文字列を関数に変換して使用できるコードをいくつか見つけました。

var strFun = "someFunction";
var strParam = "this is the parameter";

//Create the function
var fn = window[strFun];

//Call the function
fn(strParam);

オブジェクトメソッドに対して同じことを行う方法があるかどうか疑問に思っていました。

var fn = window["onclick"];
var body = document.body;
body.onclick = function() {
    alert('yo');
}
// This won't work [Uncaught TypeError: Object #<HTMLBodyElement> has no method 'fn']
body.fn(); // expecting body.onclick(); via substitution of fn with a onclick function
4

2 に答える 2

2

私はあなたが探していると思います:

var body = document.body;
body.onclick = function() {
    alert('yo');
}

var strfun = 'onclick';
var fn = body[strfun];
fn();

本体の onclick 関数を呼び出す。

于 2012-04-05T03:15:05.887 に答える
0

オブジェクトのコンテキストで関数を呼び出すことができます:

fn.call(your object);
于 2012-04-05T03:08:34.023 に答える