2012-04-05 13 views
1

Ich habe über einige Codes kommen, die Ihnen eine Zeichenfolge eines Funktionsnamen zu einer Funktion und es konvertieren verwenden:JavaScript-String in Objektmethode konvertieren und aufrufen?

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

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

//Call the function 
fn(strParam); 

ich mich gefragt, ob es eine Möglichkeit gäbe, das gleiche zu tun für Objektmethoden zB:

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 
+1

was funktioniert nicht? – rlemon

+0

Whoops Ich dachte abstrakt, ich vergaß, dass das gültige Javascript-Code war, ich reupdated, was ich versuchte zu sagen. – Derek

+0

@Derek: Ihr Code macht immer noch keinen Sinn. Du erschaffst eine Sache und rufst eine andere an. –

Antwort

2

ich glaube, du bist:

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

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

Um die Onclick-Funktion des Körpers aufzurufen.

+0

nett. Danke. 3char – Derek

+0

@Derek Gern geschehen :) – Paulpro

0

Sie können nur die Funktion im Rahmen des Objekts aufrufen:

fn.call(your object); 
Verwandte Themen