本文摘自PHP中文网,作者coldplay.xixi,侵删。
javascript的this使用方法:1、函数有所属对象时,指向所属对象;2、函数没有所属对象,指向全局对象;3、构造器中的this,指向新对象。
本教程操作环境:windows7系统、javascript1.8.5版,DELL G3电脑。
javascript的this使用方法:
1) 函数有所属对象时:指向所属对象
函数有所属对象时,通常通过 . 表达式调用,这时 this 自然指向所属对象。比如下面的例子:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
getValue() 属于对象 myObject,并由 myOjbect 进行 . 调用,因此 this 指向对象 myObject。
2) 函数没有所属对象:指向全局对象
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
在上述代码块中,foo 函数虽然定义在 getValue 的函数体内,但实际上它既不属于 getValue 也不属于 myObject。foo 并没有被绑定在任何对象上,所以当调用时,它的 this 指针指向了全局对象 global。
据说这是个设计错误。
3) 构造器中的 this:指向新对象
js 中,我们通过 new 关键词来调用构造函数,此时 this 会绑定在该新对象上。
1 2 3 4 5 6 7 |
|
顺便说一句,在 js 中,构造函数、普通函数、对象方法、闭包,这四者没有明确界线。界线都在人的心中。
4) apply 和 call 调用以及 bind 绑定:指向绑定的对象
apply() 方法接受两个参数第一个是函数运行的作用域,另外一个是一个参数数组(arguments)。
call() 方法第一个参数的意义与 apply() 方法相同,只是其他的参数需要一个个列举出来。
简单来说,call 的方式更接近我们平时调用函数,而 apply 需要我们传递 Array 形式的数组给它。它们是可以互相转换的。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
相关免费学习推荐:javascript视频教程
以上就是javascript的this使用方法有哪些的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《this方法》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者