【散分】你是如何隐藏你的变量和属性的
这段时间在javascript版块学习了很多,其中感触最深的就是对js继承和对变量的隐藏上。
我们都知道全局变量的危险性以及可能的与其他库或者js文件冲突问题,所以很多时候我们都在想办法去隐藏我们的全局变量,最简单的方法莫过于加入“命名空间”
var Lib = {};Lib.Do = {};...
function Person(name,age,sex) { this.name = name || "jee"; this.age = age || 24; this.sex = sex || true}
var p = new Person("jee",24,true);alert(p.getName());
alert(p.name);
function person(name,age,sex) { var _name = name || "jee"; var _age = age || 24; var _sex = sex || true; return { getname : function() { return _name; }, setname : function(n) { _name = n; } getage : function() { return _age } ... };}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script type="text/javascript"> window.onload = function() { var li = document.getElementsByTagName("li"); for (var i = 0; i < li.length; i++) { li[i].onclick = function() { alert(i); }; } };</script><style>li { width:100px; background-color:red; cursor:pointer; line-height:20px; margin-bottom:5px;}</style></head><body> <ul> <li></li> <li></li> <li></li> </ul></body></html>
window.onload = function() { var li = document.getElementsByTagName("li"); for (var i = 0; i < li.length; i++) { li[i].onclick = function(i) { return function() { alert(i); }; }(i);//i作为参数传递给这个自执行函数,在绑定onclick的时候,该函数已执行,而这个函数体内部调用的就是该i的值了 } };
发这个是这段时间对该段内容的理解,由于不是很有把握,所以发在js的版块里算是抛砖引玉,希望各位大牛能够给小弟一些指导。在此谢过。
[解决办法]
匿名函数就行了
[解决办法]
学习,还是不太理解。
[解决办法]
我们都是这样隐藏的
(function() { var isIE = ....; function repaint() {} function redraw() {} function Chart() {} Chart.prototype = { repaint: repaint, redraw: redraw }; Rs = { version: 1.0, Chart: Chart };})();
[解决办法]
LZ的学习精神非常值得借鉴。。
顶起接分
[解决办法]
考虑到函数有自己的作用域,也可以这样实现:
... li[i].onclick = function() { this.value = i; alert(this.value); };
[解决办法]
纯接分
[解决办法]
顶起接分
[解决办法]
顶帖拿分
[解决办法]
hey,牛人我来膜拜你了,给分吧~
[解决办法]
hey,牛人我来膜拜你了,给分吧~
[解决办法]
这种讨论很有益,期待完整并进行过比较筛选的方法集合
[解决办法]
mark
[解决办法]
推荐精华贴
[解决办法]
我是直接new Function来搞,
window.onload = function() { var li = document.getElementsByTagName("li"); for (var i = 0; i < li.length; i++) { li[i].onclick =new Function("alert("+i.toString()+")"); } };
[解决办法]
膜拜你..........
[解决办法]
受教了
[解决办法]
学习了!
[解决办法]
看来我还是菜鸟。因为本人从不隐藏
[解决办法]
呵呵,当然要数句柄类了
很厉害
[解决办法]
学习啊,哈哈
顺便 JF
[解决办法]
我来看看
[解决办法]
拜读了,还没研究
[解决办法]
高手! 学习了!
[解决办法]
高手!看不太懂,但是学习了!
[解决办法]
学习
[解决办法]
回帖即可获得10分可用分!小技巧
[解决办法]
有必要隐藏吗???
[解决办法]
学习了
[解决办法]
~~~~~~~~jF
[解决办法]
接份,楼主散粉了。
[解决办法]
学习了,谢谢LZ分享
[解决办法]
好东西!!!!!!!!!
[解决办法]
为啥不用匿名函数呢?
[解决办法]
来学习,不懂
[解决办法]
讲的真好...
[解决办法]
额....我都不隐藏的.呵呵~学习.......
[解决办法]
学习学习JS.
[解决办法]
学习了。
[解决办法]
【散分】你是如何隐藏你的变量和属性的 [JavaScript]
[解决办法]
高手~~~~~~~~~~~~~~~~~~~~
[解决办法]
jf……
[解决办法]
帮顶,接分
[解决办法]
我还是新手只能学习
[解决办法]
学习学习
[解决办法]
学习了
[解决办法]
路过下~~~~~
[解决办法]
......................up..............................
[解决办法]
变量的使用域确实很重要,试一试this函数吧。
[解决办法]
学习啦,感谢!
[解决办法]
学习~!
[解决办法]
,学习了
[解决办法]
回帖 ,得分 ,押宝去。。。
[解决办法]
学习下~~~~~~~~~~~~~~~~~
[解决办法]
顶一下···
[解决办法]
学习了,看来高人还是不少啊
[解决办法]
不错 学习了
[解决办法]
[解决办法]
学习一下
[解决办法]
..........
[解决办法]
学习!!过路的!
[解决办法]
深度..学习
[解决办法]
学习。。。。
[解决办法]
每天回帖即可获得10分可用分!
[解决办法]
每天回帖即可获得10分可用分!
[解决办法]
Person.prototype.getName = function() { return this.name;};Person.prototype.setName = function(name) { if (name) { this.name = name; }}
[解决办法]
好东西,赚分
[解决办法]
好东西,赚分
[解决办法]
学习啊,哈哈
[解决办法]
学习了········
[解决办法]
泰丰证件.QQ996702552手机18757550100.www.0571banzheng.net
[解决办法]
接分来了!
[解决办法]
好帖,mark
[解决办法]
学习,还是不太理解。
[解决办法]
学习,还是不太理解。
[解决办法]
(function() {
var isIE = ....;
function repaint() {}
function redraw() {}
function Chart() {}
Chart.prototype = {
repaint: repaint,
redraw: redraw
};
Rs = {
version: 1.0,
Chart: Chart
};
})();
[解决办法]
是想学js但是感觉它太麻烦了
[解决办法]
好文,mark
[解决办法]