解决方案 »
- xml分割
- 配置了群集之后寻不到JNDI的资源......
- 求租ajax返回的如下数据该如何展示出来!!!
- hibernate3 数据库问题
- struts2 中隐藏表格列问题
- Exception in thread "main" com.jacob.com.ComFailException: Invoke of: Add
- 【菜鸟请教 JQuery Ajax 相关问题】
- 文件写入PDF的问题???急!急!急!(在线等)
- 关于寻IP地址的方法
- 制作流程图表
- 我将编译好的项目中的一个class文件反编译后修改了
- ajax+json+jquery的小项目放在struts2里就可以,为什么放在spring里就不行?
我有时候也挺疑惑,这样做有什么好处么?函数能访问函数之外的变量,会很让人困惑和混淆,要是函数需要数据,就传入参数最好了。先这样的代码还容易引起垃圾回收混乱,造成泄漏。
var object = {
name : "My Object",
getNameFunc : function(){ //为了说明,此function为A也即getNameFunc
return function(){ //此function为B
return this.name;
};
}
};
alert(object.getNameFunc()());
//当执行object.getNameFunc()时放回的是B方法,而方法不是object的方法,故this并不是代表object而是代表window
//运行结果是window.name 即name="The Window";
我有时候也挺疑惑,这样做有什么好处么?函数能访问函数之外的变量,会很让人困惑和混淆,要是函数需要数据,就传入参数最好了。先这样的代码还容易引起垃圾回收混乱,造成泄漏。我查阅了相关数据文档,优点大致有三。
1、保护函数内的变量安全。外部函数中变量只有内部函数才能访问,而无法通过其他途径访问到,因此保护了i的安全性。
2、在内存中维持一个变量。
3、通过保护变量的安全实现JS私有属性和私有方法(不能被外部访问)
-----
其实也是有利有弊,也没用绝对,主要还是看应用场景