34 lines
483 B
JavaScript
34 lines
483 B
JavaScript
|
function wrap( func )
|
||
|
{
|
||
|
return function()
|
||
|
{
|
||
|
return 'one ' +
|
||
|
func.apply( this, arguments ) +
|
||
|
' three';
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function str( value )
|
||
|
{
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
wrap( str )( 'two' ); // "one two three"
|
||
|
|
||
|
|
||
|
// demonstrating wrappers with prototypes
|
||
|
function Foo( value )
|
||
|
{
|
||
|
this._value = value;
|
||
|
};
|
||
|
|
||
|
Foo.prototype = {
|
||
|
bar: wrap( function()
|
||
|
{
|
||
|
return this._value;
|
||
|
} )
|
||
|
};
|
||
|
|
||
|
var inst = new Foo( '2' );
|
||
|
inst.bar(); // "one 2 three"
|