this就是指当前对象,这在js的高级应用中相当重要。系统默认this指向window对于 new a()(),我们把它拆开来看就很明了了:var o = new a();o();首先创建一个类a的一个对象o,在js中你可以把一个对象当做一个函数来用,所以o()就是执行这个对象的函数体。至于a().b()为什么不行呢?这里的意思并不是调用a里面的b方法,如果你要调用a里面的b方法应当写成new a().b();在js中只有对象才能调用对象里面的方法,在js中类、函数、对象在代码中时看不出来的,只有在调用的时候才能区分出,就如你上面这个例子,我们可以说这是一个闭包(也就是函数里面嵌入函数),此时a是window下面的一个函数,b是嵌入在函数a里面的一个函数。但如果你new了a,那么此时a就是一个类了,但是此时b并不是a里面的方法,而是window下面的方法,在js中如果变量、函数你不申明属于谁,那么系统就默认为是在window下的,如果你要让b是a的方法,应当写成:function a(){this.b=function(){}}或者写成function a(){a.prototype.b=function(){}}希望可以帮到你,要学ExtJs,首先必须了解js面向对象,js水平不能再停留在我们简单表当验证了