●●●●●●●●●●●●●●●●●●●●●●●●●●●这个this是谁啊??? 我又晕了~~~●●●●●●●●●●●●●●●●●●●●●●●●●●● 这个 this 谁也不是,就是一个新创建的对象。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个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 这只在这种情况下的结论。这里的this在不同情况下有不同结果的。 把源码贴一下吧 熟悉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; }}); 有时间的话,你msdn一下,就可以很清楚的了…这里的this就是指某个对象(对象有属性,有方法…你是知道的)…至于是哪一个,楼主可以msdn一下呵呵,通过自己的验证和理解可以加深自己的印象或者,你可以alert(typeof(this))调试一下… { initialize:function() { alert(this==aa)// this 指定的是{initialize:....}着外层的对象 }} 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 明显不对么你在写类定义的时候aa还没生出来呢而且this指的是initialize(); |zyciis| 为什么不是加属性而是方法:String.prototype.realLength谢谢 请问谁有FB3_WWEJ.exe插件 200分求一个简单代码 js的不同页面的跳转 用asp.net写的一个cookie,怎么在html页面里用javascript把里面的内容读出来? 关于点击图片引发事件? 如何对隐含字段的值进行修改 为什么我发布的网页里调用不了本地机的EXE程序? 用什么样的方法可以在运行时向listbox中添加item 怎样在网页中禁止打印? 请问Javascript中的Number对象是在是么情况下使用到,怎么去用? 如何控制控件不可输入?或者不可操作?
当在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
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;
}});
{
initialize:function()
{
alert(this==aa)// this 指定的是{initialize:....}着外层的对象 }
}
var object =options.initialize
return object
}var a=new Native({
initialize:function(){
alert(aa); // 是undefined 啊所以总是false alert(this==aa)//这个this是谁啊?????
}
})
var aa=new a
你在写类定义的时候aa还没生出来呢
而且this指的是initialize();