window.attachEvent( "onload ",doWork.Init); 此时doWork.Init函数中的this==window对象了.

解决方案 »

  1.   

    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(); });