`
webdev2014
  • 浏览: 679619 次
文章分类
社区版块
存档分类
最新评论

为什么要使用“var me=this”这样的写法

 
阅读更多

很多人都会奇怪,为什么在Ext JS 4中会大量使用“var me=this”这样的写法,其实,在官方论坛以下地址的帖子已经给出了很好的说明:

http://www.sencha.com/forum/showthread.php?132045


帖子里提到的最主要原因是脚本的压缩问题,例如以下代码:

function doA() {
    var me = this;
    
    me.a();
    me.b();
    me.c();
    me.d();
}

function doB() {
    this.a();
    this.b();
    this.c();
    this.d();
}

压缩后:

function doA(){var a=this;a.a();a.b();a.c();a.d()};
function doB(){this.a();this.b();this.c();this.d()};

从压缩后的代码可见,使用“var me=this”的写法,压缩率更高。可以想象,在Ext JS这样类很多,且大量需要使用this关键字的框架,使用“var me=this”,确实可以大大减少压缩包的大小。
分享到:
评论

相关推荐

    微信小程序开发中var that =this的用法详解

    在微信小程序开发中,var that =this的声明很常见。举个例子,代码如下! 示例代码1 //index.js Page({ data: { toastHidden: true, }, loadData: function () { var that = this//这里声明了that;将this...

    浅析JavaScript中var that=this

    在阅读别人的代码时,发现别人写的代码中有这么一句:var that = this;,这代表什么意思呢?经过一番查阅,才明白是这么回事。 在JavaScript中,this代表的是当前对象。 var that=this就是将当前的this对象复制一份...

    微信小程序中为什么使用var that=this

    主要介绍了小程序中为什么使用var that=this的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    微信小程序开发中 var that =this的用法

    在微信小程序开发中,var that =this的声明很常见。举个例子,代码如下! 示例代码1 1 //index.js 2 Page({ 3 4 data: { 5 toastHidden: true, 6 }, 7 8 loadData: function () { 9 var that = this//这里...

    var r = this.onTimeout(this.duration, this);解决方法

    这版本的AjaxPro.net框架集解决了出现this.onTimeout is not a function的错误,也是经常出现的"缺少对象的错误",同时包括AjaxPro.dll,AjaxPro.2.dll,AjaxPro.JSON.dll, AjaxPro.JSON.2.dll

    jquery需要的所有js文件

    this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0]...

    出现问题a is defined高手帮忙

    var me = this; var mapDiv = map.getContainer(); // Create div for both buttons var buttonContainerDiv = document.createElement("div"); DragZoomUtil.style([buttonContainerDiv], {cursor: '...

    微信小程序-微信小程序之Canvas

    var that = this var p10= data[0][0]; /* 三阶贝塞尔曲线起点坐标值*/ var p11= data[0][1]; /* 三阶贝塞尔曲线第一个控制点坐标值*/ var p12= data[0][2]; /* 三阶贝塞尔曲线第二个控制点坐标值*/ var p13= ...

    javascript中new Array()和var arr=[]用法区别

    大家在学习javascript中对于数组函数new Array()和var arr=[]很多朋友不知道如何区别,也不知道用法,下面看看我们总结的。 var arr=[] 这是一种字面量定义数组的方法 var arr=new Array() 这是调用数组构造函数...

    H5 Canvas炫酷3D线条延伸动画特效.zip

    var c = document.getElementById('c'); var ctx = c.getContext('2d'); var w = c.width = window.innerWidth; var h = c.height = window.innerHeight; var cx = w / 2; var cy = h / 2; var fl = ...

    Ext grid合并单元格

    var cm = this.cm, ts = this.templates; var ct = ts.hcell,ct2=ts.mhcell; var cb = [], sb = [], p = {},mcb=[]; for(var i = 0, len = cm.getColumnCount(); i ; i++){ p.id = cm.getColumnId(i); p....

    JS绿色自行车行驶动画特效.zip

    this.getAttribute("data-r") "," this.getAttribute("data-g") "," this.getAttribute("data-b") "," "1)"; colorObj.r=this.getAttribute("data-r"); colorObj.g=this.getAttribute("data-g"); colorObj.b=...

    crypto-js for egret(白鹭).zip

    AES 加密 , crypto-js 库 egret (白鹭引擎) 可以直接引用。 适合H5 egret 白鹭开发者。 亲测可用! 使用的话,用 bin 目录里面的... var decryptedStr = this.AESDecode(data,key,iv); return decryptedStr; }

    有记忆功能的动态,静态树型菜单xtree

    可以动态的添加子节点,资源中有使用的api的详细说明 var tree = new WebFXTree('Root'); tree.setBehavior('classic'); var a = new WebFXTreeItem('1'); tree.add(a); var b = new WebFXTreeItem('1.1'); a....

    c# object, dynamic, var的区别用例

    // object, dynamic, var的区别用例 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { public string param = ...

    css3 HTML5 Canvas炫酷3D线条延伸动画特效.zip

    var pp = new P(this.x, this.y, this.z); pp.cl = this.cl; this.list.push(pp); } } else { var pp = this.list.shift(); pp.x = this.x; pp.y = this.y; pp.z = this.z; pp.cl = this.cl; ...

    JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍

    主要介绍了JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics