2
0
mirror of https://github.com/boostorg/test.git synced 2026-01-26 19:12:10 +00:00
Files
test/doc/js-lib/callback_api.js
Gennadiy Rozental 6c9bae63c6 added cookies
[SVN r14951]
2002-08-19 14:27:03 +00:00

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