mirror of
https://github.com/boostorg/test.git
synced 2026-01-26 19:12:10 +00:00
40 lines
1.0 KiB
JavaScript
40 lines
1.0 KiB
JavaScript
function Callback( func, target_obj ) {
|
|
this.func = func;
|
|
this.target_obj = target_obj;
|
|
this.args = new Array();
|
|
this.add_args( arguments, 2 );
|
|
}
|
|
|
|
Callback.prototype.toString = function() {
|
|
var res = this.target_obj ? 'object.' : '';
|
|
res += JS.funcname( this.func ) + '( ';
|
|
for( var i=0; i < this.args.length; i++ )
|
|
res += this.args[i];
|
|
res += '... )';
|
|
|
|
return res;
|
|
}
|
|
|
|
Callback.prototype.add_args = function( args_array, first_arg_index ) {
|
|
var index = first_arg_index ? first_arg_index : 0;
|
|
for( ; index < args_array.length; index++ )
|
|
this.args.push( args_array[index] );
|
|
}
|
|
|
|
Callback.prototype.run = function() {
|
|
if( arguments.length > 0 ) {
|
|
var args_list = new Array();
|
|
for( var i = 0; i < this.args.length; i++ )
|
|
args_list.push( this.args[i] );
|
|
|
|
for( var i = 0; i < arguments.length; i++ )
|
|
args_list.push( arguments[i] );
|
|
}
|
|
else
|
|
var args_list = this.args;
|
|
|
|
return this.func.apply( this.target_obj, args_list );
|
|
}
|
|
|
|
// EOF
|