原文链接
http://www.sencha.com/forum/showthread.php?132045-why-using-quot-var-me-this-quot-in-ext4
先是标题:
why using "var me = this;" in ext4?
然后1楼萌萌的楼主发问了
1L表示不能理解为什么使用
var me=this;
me.functionName();
而不是直接使用
this.functionName();
然后3楼回答了
他提到了2个原因:1、从前有个人告诉他这么做comply更好,更节省空间 2、真正的原因是:在他的IDE上“this”字符串会高亮呈蓝色显示,他对这一点很不爽。
看头像和语言就知道这哥们很cute
然后
evant
大神来了
最后的代码缩进了,图片可能看不清,
主要思想如果函数中代码比较少·时候,不会节省肯多空间比如
function doA(){var a=this;a.a();a.b();a.c();a.d()}; function doB(){this.a();this.b();this.c();this.d()};但是当函数中代码比较多时候,
function doA(){var a=this;a.a();a.b();a.c();a.d();a.e();a.f();a.g();a.h();a.i();a.j();a.k();a.l()}
function doB(){this.a();this.b();this.c();this.d();this.e();this.f();this.g();this.h();this.i();this.j();this.k();this.l()};
可以看到下面的比上面的长,所以节省了空间
evant
大神详细说明了3楼的第一个原因,好有耐心
最后又有一个哥们补充了一下这么干的好处
这是grid中有一个toolbar, toolbar中有一个button,button中的handler使用了me,这个时候me就是代指grid,如果把me替换成this
即
// a grid, for example initComponent: function() { var me = this; ... me.toolbar = new Ext.Toolbar({ items: [ { text: 'refresh', handler: function() { this.store.reload(); } } ] }); ...
这个时候this就是指text为refresh的button,
这样做可以避免混乱