惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
J
Java Code Geeks
C
Check Point Blog
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
IT之家
IT之家
Martin Fowler
Martin Fowler
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
U
Unit 42
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
I
InfoQ

博客园 - 蓝色随想

萨缪尔·摩尔斯诞辰 [摩尔斯电码或称摩斯密码的创立者] poi 3.2 SecurityException HPSFException signer information does not match signer information of other classes in the same package - 蓝色随想 some useful words [随笔]无题 [歌曲]蒲公英的约定 —— 周杰伦 [歌曲]会呼吸的痛 —— 梁静茹 [转]随便说说字符集和编码 - 蓝色随想 - 博客园 [转]MD5简介 Java资源包处理类ResourceBundle某些细节 - 蓝色随想 - 博客园 [转]标准代码页列表 [转][经典]What is the right thing to do? 生日快乐 [漫画]向左走 向右走 Table of ASCII Characters [原]IIS 和 Tomcat 整合步骤 [转]李商隐《嫦娥》赏析 《长大的故事》主题曲 Windows操作系统发展历史专题[转] 常用的英语经典语句
论Javascript如何防止污染全局作用域 - 蓝色随想 - 博客园
蓝色随想 · 2007-11-01 · via 博客园 - 蓝色随想

/*
  * ==============================================
  * 会污染全局作用域的编码方式
  * ==============================================
  
*//* 
  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
   
*/