首页 > 代码库 > this的一点问题
this的一点问题
一般一个页面的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的一点问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。