首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

使用哪种方式比较好?请问

2012-04-09 
使用哪种方式比较好?请教主要是2种方式:第一种:JScript code(function(){window.r_soft new Object()fun

使用哪种方式比较好?请教
主要是2种方式:

第一种:

JScript code
(function(){    window.r_soft= new Object();    function tests(){        alert("SS");    }    window.r_soft.tests = tests;})();

html可以通过调用r_soft.tests()调用
我的理解: 通过自执行方式 把r_soft作为全局对象使用

第二种:
JScript code
var r_soft= new Object();r_soft.tests = function(){    alert("SS");}



同样也可以通过r_soft.tests()调用
我的理解也是r_soft作为全局对象使用。。。  

问题:
1:为啥第一种方式要使用自执行的方式。(我试过不使用也是可以正常调用)
2:平时项目大家会选择使用哪种方式? 为啥?



[解决办法]
第一个是闭包,主要看tests()函数的功能了。
一般的js代码少的网页用哪个都行。
[解决办法]
第一种, 标准的。
[解决办法]
安全就用第一种。。我觉得。。
[解决办法]
问题:
1:为啥第一种方式要使用自执行的方式。(我试过不使用也是可以正常调用)
为啥使用自动的方式,比如上一个操作完,要马上执行下一个操作,你就可以用自动 ,不用自动你手动调用当然也可以。

2:平时项目大家会选择使用哪种方式? 为啥?
用哪种都要吧吧,其实这二种都差不多,没必要执着的去想为什么了,第一个是闭包的方式,安全性是要强点的。
[解决办法]
1的写法主要是为了变量和函数(本质上也是变量)作用范围独立,这样你写好一个你自己的一功能,就可以这样封装为外部的js文件,在任何地方引用,而不用担心你自己的函数和“全局”变量会与引用页冲突。
比如
JScript code
    var a = "out";    function tests() {        alert(a);    };        (function() {        window.r_soft = new Object();        var a = "inner";        function tests(s) {            alert(s+a);        }        window.r_soft.tests = tests;    })();
[解决办法]
看完这个应该都懂了
[解决办法]
自动执行匿名函数,好处是避免命名冲突

你的2段代码都是只 暴露了一个全局变量,这样的代码
为什么不简单点写呢?非要加个匿名函数呢
[解决办法]
我感觉应用第二种,用闭包会浪费内存,用其他方式能实现最好不用闭包
[解决办法]
个人认为,匿名函数立即运行,势必会影响性能,使用它只要是避免与全局变量冲突。

楼主可以试试
var namespace = {
a:1,
b:2,
fn: function(){
alert(this.a);
}
}

热点排行
Bad Request.