[Javascript] revisiting exists() method

Troy III Ajnej trojani2000 at hotmail.com
Sun Jan 4 02:42:23 CST 2015




>  ---------------------------8<---------------------------
>  exists=
>  /*b.b. Troy III p.a.e.*/
>  function(x){try{return!!(0,eval)(x)}catch(e){return!1}}
>  --------------------------->8--------------------------- You probably remember this (above) function, the following was written soon after, but...Well, - time to share... [code]
function isNS(arg,f) {    /*b.b. Troy III p.a.e.*/      var i, a = arg.split("."), c = this, s = [], b, r;      f = f || 0;              for( i in a ) {                   c ? a[i] in c ?  ( c = c[ a[i] ], s.push( a[i] ), b = !0 ) :  b = !1 : 0;            }                  r = [ b, c, s, a, arg ];                  return f < 0 ? r : r[+f||f] }
[/code]

 [example]isNS("myObject.property.subProperty.myMethod");
 _> Boolean : true/false // applying f argument functionality modifier: isNS("myObject.property.subProperty.myMethod", [ f ] ); where f can be:  -1; 0|false|undefined; 1|true; 2; 3 or 4.Description:-1 _> returns array object containing complete inoculation.0 _> optional; returns Boolean: true (if complete NS chain exist) : false (if it's broken).1 _> if NS* query exists, case true: returns the existing value, if not, case false: returns the last valid context if any, or the global object if root doesn't exist.2 _> returns an array of existing namespaces in the argument query.3 _>  returns an array containing all specified namespaces.4 _>  returns the original query string. 
 This simple function allows the introduction of a secure and quite elaborate Guesswork in JavaScript. 
Possible use case:
...
var qNSret = isNS( [string], -1) ;if( qNSret[0] ){ send( qNSret[1] ) else notify( qNSret[4], qNSret[2] ) };...
 
* already familiar "NS" initials stand for "Namespace".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Troy III
       progressive art enterprise
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		 	   		  


More information about the Javascript mailing list