-1

他のオブジェクトの配列を含み、それらのメソッドを呼び出すことができる Javascript オブジェクト obj が必要です。また、オブジェクト obj の特別な関数を呼び出して、それ自体の参照を引数として渡すことによって、任意のオブジェクトを配列に登録できるようにしたいと考えています。

誰かとても親切で、それを手伝ってくれませんか? 私はそれで苦労してきました。

また、オブジェクト obj が他のすべてのオブジェクトを作成する簡単な解決策を考えましたが、それもうまくいかないようです...

4

1 に答える 1

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
*/
于 2013-09-30T19:02:26.760 に答える