这个 this 谁也不是,就是一个新创建的对象。

解决方案 »

  1.   

    这个this 在执行完var aa=new a 后this是aa;
    当在alert(this==aa) 时, aa还没有申明。aa是undefined;var Native = function(options){
        var object =options.initialize
        return object
    }var a=new Native({
        initialize:function(){
    alert(aa)
            alert(this==aa)//这个this是谁啊?????
        }
    })
    var aa=new a
      

  2.   

    这只在这种情况下的结论。这里的this在不同情况下有不同结果的。
      

  3.   

    把源码贴一下吧  熟悉mootools的朋友帮我搞清this 到底怎么传的???
    var Class = new Native({ name: 'Class', initialize: function(properties){
    properties = properties || {};
    var klass = function(){
    for (var key in this){
    if ($type(this[key]) != 'function') this[key] = $unlink(this[key]);
    }
    this.constructor = klass;
    if (Class.prototyping) return this;
    var instance = (this.initialize) ? this.initialize.apply(this, arguments) : this;
    if (this.options && this.options.initialize) this.options.initialize.call(this);
    return instance;
    }; for (var mutator in Class.Mutators){
    if (!properties[mutator]) continue;
    properties = Class.Mutators[mutator](properties, properties[mutator]);
    delete properties[mutator];
    } $extend(klass, this);
    klass.constructor = Class;
    klass.prototype = properties;
    return klass;
    }});
      

  4.   

    有时间的话,你msdn一下,就可以很清楚的了…这里的this就是指某个对象(对象有属性,有方法…你是知道的)…至于是哪一个,楼主可以msdn一下呵呵,通过自己的验证和理解可以加深自己的印象或者,你可以alert(typeof(this))调试一下…
      

  5.   


    {
        initialize:function()
      {
            alert(this==aa)//  this 指定的是{initialize:....}着外层的对象   }
    }
      

  6.   

    var Native = function(options){
        var object =options.initialize
        return object
    }var a=new Native({
        initialize:function(){
            alert(aa); // 是undefined 啊所以总是false        alert(this==aa)//这个this是谁啊?????
        }
    })
    var aa=new a
      

  7.   

    明显不对么
    你在写类定义的时候aa还没生出来呢
    而且this指的是initialize();