论Javascript如何防止污染全局作用域
2007-11-01 00:58
169 查看
/**
* ==============================================
* 会污染全局作用域的编码方式
* ==============================================
*/
/*
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
*/
* ==============================================
* 会污染全局作用域的编码方式
* ==============================================
*/
/*
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全局环境,避免命名冲突
- 面试小汇总-(javascript/jQuery怎么防止全局变量污染和fn名称冲突?)
- JavaScript防止全局变量污染的方法总结
- 防止js全局变量污染方法总结-待续
- effective javascript(五)——变量作用域(尽量少用全局变量,尽量使用局部变量)
- JavaScript高级程序设计之BOM之window 对象之全局作用域 第8.1.1讲笔记
- javascript如何列出全局对象的非原生属性。
- 如何防止动态加载JavaScript引起的内存泄漏问题
- 如何在WebForm中使用javascript防止连打(双击)
- javascript 没有块级作用域 JavaScript声明全局变量三种方式 及
- JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
- 跟我学JavaScript--作用域,局部变量,全局变量,变量生命周期
- 如何检测 JavaScript 中的自定义全局变量
- 如何防止动态加载JavaScript引起的内存泄漏问题
- 如何减少JS的全局变量污染
- 如何在JavaScript里防止事件函数的高频触发和调用
- 认清JavaScript和JAVA全局变量和局部变量的作用域
- 12 JavaScript基础之--变量的作用域和隐式全局变量
- Javascript-全局函数和局部函数作用域的理解
- 对JavaScript中全局对象和作用域的一点点理解