console.info('scope<TResult>(plugin: IScope<TContext, TResult>, ...use: any[]): TResult');
console.info('Execute IScope processing plugin');
console.info('IScope = (this: Context<TContext>, context: TContext, use: any[]): TResult');
function switchContextUse(context, use) {
return new Context(use).use(context);
}
function eachFunc() {
for (var index in this) {
var f = this[index];
if (f instanceof Function) {
f.apply(this, arguments);
}
}
}
var c = new Context([1,2,3,4,5]);
c
.use(function(){ console.log('A: ', this, arguments) })
.use(function(){ console.log('B: ', this, arguments) })
.scope(switchContextUse)
.task(eachFunc);
console.log(c);