AdamW
AdamW

Reputation: 184

augmenting a jQuery object with custom properties

In my app, I have a number of jQuery objects which are kept in memory. That is, they don't get regenerated by another selector search. Also, they are local to the module.

const jQthing = $('#thing'); 

Is there any reason not to add custom properties to this object?

jQthing.title = 'All Things';

I know I can use the data dictionary but this looks a bit clumsy, especially when retrieving a method. Would this be a bad design, or bad style?

Thanks

Upvotes: 1

Views: 129

Answers (1)

Jon
Jon

Reputation: 2671

You can definitely do this, but you just need to be careful that the property that you add does not clash with any properties or functions that the jquery object would have. And that is why I wouldn't recommend that.

Instead, you would probably be better served wrapping the jquery object in an object and then make your own properties off of that. So for example something like below would do what you want, plus avoid any possible collisions.

var objectWrapper = {
    jQthing: $('#thing'),
    title: 'All Things'
}

So now you can use it like this objectWrapper.jQthing.fadeIn() or objectWrapper.title, without any worries.

Upvotes: 1

Related Questions