0 Comments

切换上下文

发布于:2014-04-02  |   作者:广州网站建设  |   已聚集:人围观

切换上下文

关于事件有一点经常让人感到迷惑,那就是调用事件回调函数时上下文的切换。当使用浏览器内置的addEventListener() 时,上下文从局部变量切换为目标HTML 元素:


  1. new function(){  
  2. this.appName = "wem";  
  3. document.body.addEventListener("click", function(e){  
  4. // 上下文发生改变,因此appName 是undefined  
  5. alert(this.appName);  
  6. }, false);  
  7. }; 

广州网站建设,广州网站设计,广州网站制作,网站建设,网站设计,广州网站建设公司,广州网站设计公司

要想保持原有的上下文,需要将回调函数包装进一个匿名函数,然后定义一个引用指向它。我们在第1 章已经提到这种模式,即使用代理函数来保持当前的上下文。这在jQuery 中也是一种很常用的模式,包括一个proxy() 函数,只需将指定的上下文传入函数即可:

  1. $("signinForm").submit($.proxy(function(){ /* ... */ }, this)); 
标签:
飞机