论Javascript如何防止污染全局作用域

 

/*
  * ==============================================
  * 会污染全局作用域的编码方式
  * ==============================================
  
*/

/*  
  alert("NaN is NaN: " + isNaN(NaN));
  
   function x() {
    this.isNaN = function() { 
     return "not anymore!";
    };
   }
  // alert!!! trampling the Global object!!!
  x();//一执行就污染了全局作用域中的函数isNaN
 
  alert("NaN is NaN: " + isNaN(NaN));
 
*/
 

 
/*
   * ==============================================
   * 利用简易名称空间,防止污染全局作用域的编码方式
   * ==============================================
   
*/
  alert(
" NaN is NaN:  "   +  isNaN(NaN));
  
var  RootObj  =  {}; // 根对象 超简易名称空间
  RootObj.fun  =   function  (){
   
this .isNaN  =   function (strTemp){
    
return  strTemp;
   }
  };
   
  RootObj.fun.prototype.name 
=   function (){
   
return   " testName " ;
  }
  RootObj.fun();
// 这样就不怕污染全局作用域了 就是window啦
   var  obj  =   new  RootObj.fun();
  alert(
" Obj.name: "   +  obj.name());
  alert(
" NaN is NaN:  "   +  isNaN(NaN)); // 可以正常使用了
  alert( " Obj.isNaN: "   +  obj.isNaN(NaN));
 
 
/*
   * 转载请注明出处:
   * 作者:蓝色随想
   * 主页:http://bluethinking.cnblogs.com
   
*/

你可能感兴趣的:(论Javascript如何防止污染全局作用域)