我想要一个包含其他对象数组并且能够调用它们的方法的 Javascript 对象 obj。我还希望任何对象都能够通过调用对象 obj 的特殊函数并将其自身的引用作为参数传递来注册到数组中。
有人会这么好心并帮助我吗?我一直很难受。
我还想到了一个简单的解决方案,其中对象 obj 创建所有其他对象,但似乎效果不佳......
我想要一个包含其他对象数组并且能够调用它们的方法的 Javascript 对象 obj。我还希望任何对象都能够通过调用对象 obj 的特殊函数并将其自身的引用作为参数传递来注册到数组中。
有人会这么好心并帮助我吗?我一直很难受。
我还想到了一个简单的解决方案,其中对象 obj 创建所有其他对象,但似乎效果不佳......
也许你的意思是这样的
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
*/