4 ms·
I don't see how prefixing names with $ is a "smell". It's just a convenient way to differentiate jQuery objects quickly. sort of like "strVar" or "intVar".
by pmichaud 17y ago
I don't see how prefixing names with $ is a "smell". It's just a convenient way to differentiate jQuery objects quickly. sort of like "strVar" or "intVar".
- axod 17y agoBecause it's dishonest, and makes for bad code. $('body') looks to the uninitiated to be a simple variable. Maybe they come from the PHP world, so they think "Ah! that's just the variable body from the DOM, ok great. When in reality, $ is the name of a mammoth function that could take ages to execute. It'll also execute every time. eg for (var i=0;i<1000;i++) { $('silly').doSomthing(); } This is horrible horrible code. It's calling the function $ 1000 times. Why?
- buckwilson 17y agoI think you kind of missed something. The $ by itself in a variable name doesn't do anything. It's simply a notation to keep your DOM elements (and other variables / objects) separated from your jQuery wrapped elements. $myDiv = $('#myDiv'); Now I know every time that $myDiv is already wrapped in jQ and I won't make the mistake of wrapping it again $($myDiv) in my code.
- axod 17y agoYes, I know. My point is that most people won't know/bother doing $myDiv = $('myDiv'); They'll simply use $('myDiv') all over the place which will be horrible.
- pmichaud 17y agoI'm a little confused here. First, let me echo my sibling comment by saying that, yes, $ is a function, but no, the name "$var" will not execute the $ function. To me it's a method of notation, as the sibling also said. But you seem to understand that point, so I'm confused why you said what you said. You're saying using $ as notation might confuse people new to jQuery and presumably javascript, who might not realize that $ is a function. You're saying that they would or might therefore conflate $var with $('selector'), leading to inefficient code? So, I should abandon a concise convention because a tiny subset of the programmer population might misinterpret a detail of my code, causing them to implement superficially similar code in an inefficient way? Is this a problem you run into a lot?
- axod 17y agoI'm saying that using $ to name a function, isn't a good idea. It looks cheap to use, but it's not. That's my point. Same reason I hate those things in C# is it? where you can get some code to run each time a variable is read/written to.
- pmichaud 17y agoProperties. Properties make for some mighty clean code though. I guess you have a particular bias toward protecting systems from crap programmers, which may serve you well in your environment. In my environment being concise wins because no one is an amateur.
- axod 17y agoNot really. I'm a sole developer at the moment, so I value efficient easy to read code. Mainly a matter of taste though I expect.