'Passing variables to object key function and back to requesting function

Seems like I can only create a global variable for this to work but here is what would be ideal. I would like to pass a variable to an object which has keys that reference functions. In the function I am referencing I would like to set either that variable or one that was defined within the function that called it and pass it back:

jsfiddle

var methodHandler = {
    'a-key': function () {
        aVariable = document.getElementById('a-container');
    }
}

function sample() {
    var aVariable;

    methodHandler['a-key']();
    console.log(aVariable);
}

sample();


Solution 1:[1]

Because of scoping, you can't really do it that way. However, you could restructure it like this and get a similar result:

var methodHandler = {
    'a-key': function () {
        return document.getElementById('a-container');
    }
}

function sample() {
    var aVariable = methodHandler['a-key']();
    console.log(aVariable);
}

sample();

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 piergiaj