4 ms·
I simply generate global functions corresponding to tags, so my stuff looks like this: div(span('hello world')).inject(document.body); Very simple to do and
by maratd 15y ago
I simply generate global functions corresponding to tags, so my stuff looks like this:
div(span('hello world')).inject(document.body);
Very simple to do and even simpler to use.
- joestelmach 15y agoMany would frown upon polluting the global name space with functions corresponding to all known HTML tags.
- tikhonj 15y agoIf you end up wrapping your code in an immediately called lambda anyhow I'm sure it would be fine.
- mistercow 15y agoSort of, but there are some tags you probably don't want to pollute your own top-level namespace with, like a, b, i, object, p, q, and s. There's at least one tag (var) which is not allowed as an identifier on its own.
- WiseWeasel 15y agoI think 'a' and 'p' are the only ones among those you'd actually want. I could probably live with with those limitations.
- WiseWeasel 15y agoNow that I think about it, that might break a few sortFunction(a,b) {//do stuff with a and b} type functions of mine...
- mistercow 15y agoNo, it won't break them; it will just make them confusing to read. The scope of the function arguments would be more local, so they would hide the declarations further up the scope chain. What's more of a problem is if you have something like this: https://gist.github.com/2499913 https://gist.github.com/2499913 The problem is that the "var p" in the for loop will be hoisted to the top of the scope, and so when you call p() in the first line, it will actually be undefined.
- catch23 15y agoYou could use with(){} in js so you don't have to pollute your global namespace and still have pretty code.
- mistercow 15y agoHardly seems worth it to invoke that confusing construct when you could just pack them in an object with a short name instead.