论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
   
*/
posted on 2007-11-01 00:58  蓝色随想  阅读(711)  评论(0编辑  收藏  举报