关于this的问题,这个我怎么理解不了呢,不胜感谢 本帖最后由 humanblue 于 2010-03-09 21:34:37 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 alert(this[i]) != alert(this) 这两个self代表的都是aaa类,至于你后面alert(this[i])这个输出的只是这个aaa类里的属性,所以当然输出的就只有是aaa.prototype._doTab = function (t) { for (var i in t) { alert(this[i]); } } 这个喽 非常感谢您,我理解了,还有个小问题var aaa = function() { var self = this; var a = 2; for (var i = 0; i < document.getElementsByTagName('a').length; i++){ document.getElementsByTagName('a')[i]['onmouseover'] = function(){ self._doTab(self); } } } 为什么这里要用self=this,用self去调取这个aaa类,为什么不能直接把self._doTab(self)改成this._doTab(this),我测试了,如果改成this._doTab这里的this指的是a元素了,那实际上就是var self=this这句起了很关键的作用,您看我理解对不对,就是在给某元素加事件的时候,必须通过外部一个变量才能取到外面的this,例如self=this? 首先,两个 self 只的是同一个东西, 是 aaa 这个对象。------------------------------------------------Q:我alert时候很明显是输出的aaa._doTab这个方法A:原因在_doTab这个方法的内部,function (t) { for (var i in t) { alert(this[i]); } } 这个 for 循环做的事情是 alert 出 传进来的参数的全部属性,当前对象 就是 aaa 就一个属性 _doTabfor (var i in t) { alert(this[i]); } 所以输出的就是 _doTab 的内容--------------------------------var a = 2; =>this.a = 2; 就可以看到区别了 extjs grid 一个界面中吧一个表格的数据转到另一个表格 JS 怎样改变图层的Z轴跟座标? JS提交表单到数据库 一个有趣的剪刀石头布游戏(不会让你失望). JS 树状页面搜索问题 javascript中的冒号是做什么用的 简单的语法问题。送分了。 100分求教JavaScript在html可以运行,在jsp页面就报错的问题,涉及ActiveX控件 请问JavaScript里面怎样4舍五入并保留两位小数 如何做一个与数据库关联的树型目录 jpeg图片数据的字节数组 怎样显示到网页? 急问 图片拖动的保存问题
alert(this[i]) != alert(this)
aaa.prototype._doTab = function (t) {
for (var i in t) {
alert(this[i]);
}
}
这个喽
var self = this;
var a = 2;
for (var i = 0; i < document.getElementsByTagName('a').length; i++){
document.getElementsByTagName('a')[i]['onmouseover'] = function(){
self._doTab(self);
}
}
} 为什么这里要用self=this,用self去调取这个aaa类,为什么不能直接把self._doTab(self)改成this._doTab(this),我测试了,如果改成this._doTab这里的this指的是a元素了,那实际上就是var self=this这句起了很关键的作用,您看我理解对不对,就是在给某元素加事件的时候,必须通过外部一个变量才能取到外面的this,例如self=this?
for (var i in t) {
alert(this[i]);
}
}
这个 for 循环做的事情是 alert 出 传进来的参数的全部属性,当前对象 就是 aaa 就一个属性 _doTab
for (var i in t) {
alert(this[i]);
} 所以输出的就是 _doTab 的内容
--------------------------------
var a = 2;
=>
this.a = 2; 就可以看到区别了