When creating lots of DOM elements, document.createElement and friends can add lots of bytes and ugliness. I know I could make my own subroutine, or use innerHTML or whatever, but why can’t I just do this:
var $c = document.createElement;
var newP = $c('p');
Firebug complains with this message:
"Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)"
Clearly I’ve done something that is Not Allowed. Why isn’t it? It’s allowed for other things, e.g. Array.splice or Math.min.
The way you are invoking it, causes the
thisvalue inside thecreateElementmethod to refer to the global object.I would recommend you to simply use a function:
The behavior I talk can be described with an example: