日期:2014-05-16 浏览次数:20552 次
this是谁执行了它this就是指谁
thisSource.func = function () {xxx};
thisSource.func();
这里this就是thisSource
var a = {};
a.func = thisSource.func;
a.func();
这里this就是a;
同理
------------------------
attachEvent函数就相当于下面这个函数
_attachEvent = function (name, func) {
var wc = this, a = wc.["__" + name + "s"] ? wc.["__" + name + "s"] : (wc.["__" + name + "s"] = []);
a.push(func);
};
当click的时候就遍例wc.["__" + name + "s"]这种的数组但是它们执行的时候是
for (var i = 0 ; i < a.length ; i ++) {
a[i](); //这种的执行方式,this都会被指为window
}
解决方法如下。。。
window.attachEvent("onload", function () { doWork.Init(); });