質問

I'm trying to dynamically call a function using this code:

function myFn() {
        console.log("called");
}
var callbackName = "myFn";
console.log(window[callbackName]);

http://jsfiddle.net/Pr7B2/

However it says that window[callbackName] is undefined. Why and how can I call it dynamically? Thanks

役に立ちましたか?

解決

JSFiddle wraps your JavaScript inside a function so myFn is in the local scope of another function.

Use:

window.myFn = function () {
  console.log("called");
}
var callbackName = "myFn";
console.log(window[callbackName]());

This way you explicitly define global function called myFn.

Another option (as @Barmar said) is to use the JSFiddle's option "No wrap".

Demo

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top