我在ExtJS源代码中找到了这种模式.
method: function() {
var me = this;
...
me.someOtherMethod();
}
Run Code Online (Sandbox Code Playgroud)
他们为什么不使用this?总是经常定义me(在不必输入2个字符之外)是否有一些优势?我可以理解他们是否试图通过闭包来维护上下文,但它是在没有闭包的地方完成的.
Ext.panel.Panel的一个例子:
disable: function(silent) {
var me = this;
if (me.rendered) {
me.el.addCls(me.disabledCls);
me.el.dom.disabled = true;
me.onDisable();
}
me.disabled = true;
if (silent !== true) {
me.fireEvent('disable', me);
}
return me;
},
Run Code Online (Sandbox Code Playgroud) function Box(width, height)
{
this.width = width;
this.height = height;
}
var myBox = new Box(5,5);
Run Code Online (Sandbox Code Playgroud)
什么是new关键词技术上在这里做什么?它是否正在创建一个新功能?或者是创建一个新对象并将该函数应用于它?
如果是这样,那么这是一种创建"Box"的方法,这是否意味着this关键字实际上是指对象myBox?