首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js的this有关问题

2012-09-10 
js的this问题JScript codevar aid -1grid.on(rowcontextmenu,function(grid,rowIndex,e){var record

js的this问题

JScript code
                                var aid = -1;                grid.on('rowcontextmenu',function(grid,rowIndex,e){                    var record = grid.getStore().getAt(rowIndex);                    e.preventDefault();                    grid.getSelectionModel().selectRow(rowIndex);                    contextmenu.showAt(e.getXY());                    var id = record.get('id');                                        //已知record.get('id')的值是存在的,为什么aid的值还是没有改变?                    this.aid = id;                                        alert(aid);//这里的值也是 -1                });


[解决办法]
你是用的jQuery?
你贴的代码中的:
this.aid = id; //这里的this指向的是绑定“rowcontextmenu”事件后对应的dom 结点,因此给this.id赋值并不会修改第一行的定义的aid变量值

因此:
alert(aid);//这里的aid相当于全局变量,即相当window.aid
[解决办法]
匿名函数里,this好像是指向window.
[解决办法]
this.aid
和 aid
不一定是一个对象

this.xxx 指在 当前 this对象下面的 xxx
xxx 指当前代码 可以见范围内的 xxx

这2个 重叠的唯一机会就是 this=window 可见范围在window中

热点排行