【问题标题】:Store objects in arrays and call their methods in Javascript [closed]将对象存储在数组中并在 Javascript 中调用它们的方法 [关闭]
【发布时间】:2013-10-06 18:10:37
【问题描述】:

我想要一个 Javascript 对象 obj,它包含一组其他对象并且能够调用它们的方法。我还希望任何对象都能够通过调用对象 obj 的特殊函数并将其自身的引用作为参数传递来注册到数组中。

有没有人好心帮我解决这个问题,好吗?我一直在努力。

我还想到了一个简单的解决方案,其中对象 obj 创建所有其他对象,但似乎效果不佳...

【问题讨论】:

  • 你能添加一些代码来显示你到目前为止尝试了什么吗?不工作怎么办?

标签: javascript arrays object contain


【解决方案1】:

也许你的意思是这样的

function Invoker(arr) {
    arr = arr.slice();
    arr.invoke = function (methodName) {
        var args = Array.prototype.slice.call(arguments, 1),
            i;
        for (i = 0; i < this.length; ++i)
            if (methodName in this[i])
                this[i][methodName].apply(this[i], args);
    };
    return arr;
}

var arr = [
    {foo: function (a, b) {console.log('foo', a);}},
    {foo: function (a, b) {console.log('bar', b);}}
];
var invkr = Invoker(arr);
invkr.invoke('foo', 'hello', 'world');
/*
  foo hello
  bar world
*/

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2019-05-29
    相关资源
    最近更新 更多