浅谈JavaScript中的this指针和引用知识

前端之家收集整理的这篇文章主要介绍了浅谈JavaScript中的this指针和引用知识前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。

this指针在传统OO语言中,是在类中声明的,表示对象本身.在JavaScript中,this表示当前上下文,即调用者的引用

********this永远指向的是(函数对象)的所有者

this和全局对象:

函数所有者是window,全局函数中this指代的是window对象(********除非使用new,call,apply方法来改变this的指代关系)

this和对象:

函数所有者是person对象 } }; person.getName();

嵌套函数中的this

函数中,由于嵌套函数的执行上下文是window,所以this指代的是window对象,其实这是ECMA-262-3的一个bug,在最新的ECMA-262-5中已经修复

事件处理中的this:

1.

通过dom.onclick绑定事件,document.getElementById('test').onclick = showValue;

此时showValue是作为dom的onclick方法调用的,所以它的this应该指代的是dom对象,而不再是window对象

2.写在html标签内,

当点击dom时,我们获取不到正确的this,此时的this指代的是window对象,因为window对象中没有定义value的值,所以获取不到this.value

***此时的不是将showValue函数赋值给dom对象的onclick,而是引用,此时function()函数所有者是window

通过addEventListener/attachEvent绑定事件监听

猜你在找的JavaScript相关文章