码迷,mamicode.com
首页 > 其他好文 > 详细

this的一点问题

时间:2014-11-20 21:52:41      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   on   div   问题   

一般一个页面的JS代码我会放到一个对象里,像这样:

var App = {

  header: $(‘#header‘),

  showHello: function() {

    alert(‘hello‘);  

      }

}

 

这个对象里的方法会有调用的关系,当然会想到this,尤其在事件绑定的时候,因为js中的this是可变的,所以就会在方法开始出获取this,var _this = this;

var App = {

  header: $(‘#header‘),

  showHello: function() {
    alert(‘hello‘);  
    }

    init: function() {
    var _this = this;
    header.addEventListener(‘click‘, function() {
      _this.showHello();
    }, false)
  }

}

 

然后init方法在DOMContentLoaded事件触发。

window.addEventListener(‘DOMContentLoaded‘,  App.init, false);

 

我就理所当然这样写,然后就报错了。提示Uncaught TypeError: object is not a function 

一直不知道所以然,后来console.log(_this)一下,输出是window对象,console.log(this)也是一样的。

为什么指向了window没有指向App呢?有点疑惑。

 

然后修改成下面这样就可以了:

window.addEventListener(‘DOMContentLoaded‘, function() {
    App.init();
}, false);

 

this的一点问题

标签:style   blog   io   ar   color   sp   on   div   问题   

原文地址:http://www.cnblogs.com/zjzhome/p/4111385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!