javascript的代码 不知道(function{})()什么意思,跟闭包有关系吗

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:07:00
最近在看一些javascript的代码 不知道(function{})()这种写法什么一个意思,应该是跟闭包有关系。但是就是搞不清楚里面定义的 一些对象和属性是如何的一个应用范围,什么时候被创建等,各位大虾指教一下吧~~感谢~
以ext为例有这么一段:
(function() {
Ext.lib.Scroll = function(el, attributes, duration, method) {
if (el) {
Ext.lib.Scroll.superclass.constructor.call(this, el, attributes, duration, method);
}
};

Ext.extend(Ext.lib.Scroll, Ext.lib.ColorAnim);

var Y = Ext.lib;
var superclass = Y.Scroll.superclass;
var proto = Y.Scroll.prototype;

proto.toString = function() {
var el = this.getEl();
var id = el.id || el.tagName;
return ("Scroll " + id);
};

proto.doMethod = function(attr, start, end) {
var val = null;

if (attr == 'scroll') {
val = [
th

这段代码应该是ExtJs自己封装的工具代码吧。此处应该是在对滚动条或类似的滑动条进行的控制操作, 加入有下面一度代码:
Ext.utils.check = function(a, b){
try{
if (Number(a) > Number(b)) return a
else return b;
}catch(e){
throws Error;
}
}
那么在相应的调用程序应该是这样的:var maxNum = Ext.utils.check(6,66);所以当此处被调用时,对于里面的属性或是嵌套方法等进行初始化。而每个方法内自己定义的属性只能隶属于本方法,是局部变量。如果要使用全局变量,请在该方法外进行定义。希望回答对你有帮助。

(function(){})();

定义了一个匿名函数,然后执行该函数。

没觉得怎么呀,这就是一个封包+对象化+一般的框架结构,所以很多人看都会头痛的,除非你懂它里面那些预先在“别的地方”定义好的方法,否则真的难。

微软的hotmail里面的javascript代码也是类似的玩意,让人看不懂,不知道是咱太落伍了还是人家太先进了。