tag:blogger.com,1999:blog-34454975.post5484967457856798209..comments2023-06-28T16:58:41.189+02:00Comments on Web Reflection: [COW] JavaScript define PHP like functionAndrea Giammarchihttp://www.blogger.com/profile/16277820774810688474noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-34454975.post-14166584341894777242009-09-23T15:23:23.875+02:002009-09-23T15:23:23.875+02:00er, DBJ ... the title is:
JavaScript define PHP li...er, DBJ ... the title is:<br /><b>JavaScript define PHP like function</b><br />thanks for ths snippet but that's not PHP like.<br /><br />Plus a redefine function will make everything a non-sense and constants consistency will disappear.<br /><br />A <b>constant IS a constant</b>, thanks lord we cannot redefine them, or if we can, it's just a BUGAndrea Giammarchihttps://www.blogger.com/profile/16277820774810688474noreply@blogger.comtag:blogger.com,1999:blog-34454975.post-75061774864101390662009-09-23T15:15:01.121+02:002009-09-23T15:15:01.121+02:00Improved. added "chaining" , and used IE...Improved. added "chaining" , and used IE JScript condition comments.<br /><br />usage :<br /><br />define("A",1)("B", 2)("C", 3) ;<br /><br />next: redefine() and undefine()<br /><br />--DBJ<br /><br /><br />define = (function(){<br /> function as_const(name, value){<br /> return "const " + name + "=" + (<br /> /^(null|true|false|(\+|\-)?\d+(\.\d+)?)$/.test(value = String(value)) ? value : '"' + replace_(value) + '"'<br /> )<br /> };<br /> var define_, replace_;<br /> replace_ = function(value){<br /> var replace = {"\x08":"b","\x0A":"\\n","\x0B":"v","\x0C":"f","\x0D":"\\r",'"':'"',"\\":"\\"};<br /> return value.replace(/\x08|[\x0A-\x0D]|"|\\/g, function(value){return "\\"+replace[value]})<br /> };<br /> define_ = function(name, value){<br /> var script = document.createElement("script");<br /> script.type = "text/javascript";<br /> script.appendChild(document.createTextNode(as_const(name, value)));<br /> document.documentElement.appendChild(script);<br /> document.documentElement.removeChild(script);<br /> return define_ ;<br /> }<br />/*@cc_on<br />// only IE version, uses VBScript<br /> replace_ = function(value){<br /> var replace = {"\x0A":"\\n", "\x0D":"\\r"};<br /> return value.replace(/"/g, '""').replace(/\n|\r/g, function(value){return replace[value]})<br /> };<br /> define_ = this.execScript ?<br /> function(name, value){<br /> execScript(as_const(name, value), "VBScript");<br /> return define_ ; <br /> }:<br /> function(name, value){<br /> eval(as_const(name, value).substring(6));<br /> return define_ ;<br /> }<br />@*/<br /> return define_;<br />})();DBJDBJhttps://www.blogger.com/profile/10255157102936852683noreply@blogger.comtag:blogger.com,1999:blog-34454975.post-8354137091370179572009-07-31T23:34:00.046+02:002009-07-31T23:34:00.046+02:00I know I'm late but I needed this! Great work ...I know I'm late but I needed this! Great work thanksGareth Heyeshttp://www.thespanner.co.uknoreply@blogger.comtag:blogger.com,1999:blog-34454975.post-14650083449329459242008-04-16T10:40:00.000+02:002008-04-16T10:40:00.000+02:00very clear post, enlightening!thank youvery clear post, enlightening!<BR/><BR/>thank youAlessiohttps://www.blogger.com/profile/14656966532783939848noreply@blogger.comtag:blogger.com,1999:blog-34454975.post-17184858335924108642007-11-21T18:00:00.000+01:002007-11-21T18:00:00.000+01:00Woah!! This is great!How on earth nobody has still...Woah!! This is great!<BR/><BR/>How on earth nobody has still left a comment?!?!<BR/><BR/>I see many uses for this including the new version of my project Primera.<BR/><BR/>Bravo! :)<BR/><BR/>Sebastian.<BR/>www.sebastian.itAnonymousnoreply@blogger.com