详解 JavaScript 中的 this
2013-05-08 21:55
543 查看
发表于7小时前| 1203次阅读| 来源foocoder.com| 7 条评论|
作者foocoder
JavaScriptWeb开发前端开发摘要:JavaScript中的this总是让人迷惑,应该是js众所周知的坑之一。 个人也觉得js中的this不是一个好的设计,由于this晚绑定的特性,它可以是全局对象,当前对象,或者…有人甚至因为坑大而不用this。
其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:
1.全局代码中的this
2.作为单纯的函数调用
3.作为对象的方法调用
4.作为构造函数
5.内部函数
简单地总结
简单地总结以上几点,可以发现,其实只有第六点是让人疑惑的。
其实就可以总结为以下几点:
当函数作为对象的方法调用时,this指向该对象。
当函数作为淡出函数调用时,this指向全局对象(严格模式时,为undefined)
构造函数中的this指向新创建的对象
嵌套函数中的this不会继承上层函数的this,如果需要,可以用一个变量保存上层函数的this。
再总结的简单点,如果在函数中使用了this,只有在该函数直接被某对象调用时,该this才指向该对象。
我们可能经常会写这样的代码:
那我们如何能解决回调函数绑定的问题?ES5中引入了一个新的方法,bind():
该方法创建一个新函数,称为绑定函数,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数.
显然bind方法可以很好地解决上述问题。
相信看完全文以后,this不再是坑~
相关文章推荐
- this详解:JAVASCRIPT中的this到底是谁?
- Javascript.this详解
- 详解 JavaScript 中的 this
- javascript中this的使用详解
- this详解:JAVASCRIPT中的this到底是谁?
- javascript this详解(转)
- Javascript的关键字this详解
- 详解 JavaScript 中的 this
- 详解JavaScript中的this
- JavaScript基础之this详解
- JavaScript 中 this 的详解
- javascript之this详解
- JavaScript 面向对象之 this 关键字详解
- 详解Javascript 中的this指针
- javascript技术难点(三)之this、new、apply和call详解
- 详解JavaScript中this的指向
- javascript this关键字指向详解
- Javascript学习之this与函数详解
- this详解:JAVASCRIPT中的this到底是谁?
- JavaScript - this详解 (一)