JavaScript / JQuery:将函数存储在对象中并执行它

时间:2014-07-02 14:00:07

标签: javascript jquery function object properties

我有一个像这样的多维对象:

objectx = {
    1: {
        name: "first",
        loadFunction: function(target) { 
            $(target).load("http://stackoverflow.com #question", function() {
                // do something else
            });
        }
    },
    2: {
        name: "second",
        loadFunction: function(target) { 
            $(target).load("http://stackoverflow.com #answer", function() {
                // do something else
            });
        }
    }
}

每个对象都有自己的功能,可以加载和格式化来自不同位置的内容。但是如何从我的程序中调用loadFunction中的函数?

顺便说一句,我使用simple PHP proxy加载内容,对于任何绊倒这个并且想知道的人。这个例子很简单。

1 个答案:

答案 0 :(得分:0)

这在我的控制台中可以正常使用:

var derp = {1: {func: function(msg){console.log(msg);}}}

derp[1].func('hi');

在您的示例中,我认为主要问题是您在loadFunction属性之前缺少逗号。所以你的对象不是你想象的那样。

这是一个更直接适用的例子。我只是在控制台中执行它,所以我知道它有效。

objectx = {
    1: {
        name: "first",
        loadFunction: function(target) { 
            console.log('first: ' + target);
        }
    },
    2: {
        name: "second",
        loadFunction: function(target) { 
            console.log('second' + target);
        }
    }
}

objectx[1].loadFunction('hi');
> first: hi

objectx[2].loadFunction('hi');
> secondhi

也许每当你引用objectx时,它都不在你认为的状态。