$.extend(foo) merely returns a reference to foo. It doesn't clone foo.

$.extend( {}, foo ) creates a new object and copies all of foo's properties
into it (doing a shallow copy).

So in theory you may be able to use $.extend( {}, $ ) - or more properly,
jQuery( {}, jQuery ) - to clone the jQuery constructor. I wouldn't promise
that this would work, though - it depends on what assumptions the jQuery
code makes.

-Mike

> I want to clone the jQuery object $ to $D; but it actually seems to be
> overwriting. Can anyone please suggest any solution?
> 
> Here is the code:
> 
> $D = $.extend($); // same result for $D = $;
> $D.fn.extend({
>         click: function() {
>                               alert('overridden click');
>                 return this;
>         }
>       });
> 
> $(document).ready(function(){
>       $('body').click(); // this also triggers the 
> 'overridden click' --
> which is what I want to avoid.
>       $D('body').click();
> });
> 
> As you see, $('body').click() triggers the 'overridden click', but I
> wanted it to trigger the original jQuery object's click.

Reply via email to