日期:2014-05-16  浏览次数:20345 次

[JS基础]Javascript的this在Ext中的应用
如果你只是使用Ext做些小样子,那么你完全不必理会this(Ext的官方例子里面也基本上很少用这个关键字,因为这个原本在其他语言中非常简单的东西在Javascript却变得有时候让人难以捉摸);但是如果你想了解整个Ext框架或是编写可重用的js组件,你就不得不认识清楚这个关键字了。
要点:
  • 全局环境下this指向window对象
  • 这个函数做为谁的属性被调用,那么this就指向谁,不做为属性被调用时this指向window

  • 尽管b是在a函数中定义的,但它却不做为a的属性被调用(注释上说的不准确,实际上b函数是做为a函数的activation object的属性来调用的,这个对象只在运行时产生,运行完后销毁(闭包例外)我们在JS中是取不到的)

    JSON格式直接赋值的直接量对象,灰常简单
  • 函数做为特殊函数属性constructor使用时this指向生成的对象
  • 调用函数对象的call或apply方法可以调用这个函数的同时改变this的的指向(call和apply方法的第一个参数是新的this指向对象,后面的参数都是执行函数对象所需要的参数)




其实只要完全理解以上四点就可以解释所有this的指向问题了,Ext的一些方法不过是对一些常用的情况进行了封装罢了。
未完成...