js面向对象中this关键字在哪些情况指针会改变

JavaScript017

js面向对象中this关键字在哪些情况指针会改变,第1张

实际上this本身就不固定, 何谈会改变呢?  this是动态绑定的, 根据函数调用时的位置动态绑定this上下文的。

要谈变化的话大概有以下几种几种情况。

函数被new构造;

函数在对象里被引用;

函数被另一个变量引用;

函数被DOM对象调用;

函数被call、apply、bind强制绑定;

被setTimeout和setInterval调用;

如果用JQ写的话,可以尝试一下$(this)

原因很多,你this的返回对象是什么,是不是支持alert,或者说是不是能alert出来东西,而不是找不到,或者是null,你可以先alert一段文字,看看是不是可以弹出来,如果可以弹出来,你可以写个比如$(this).css("color","red")诸如这种,看看你的onclik是不是好用。

不知道楼主要alert出来什么,不是所有的东西都可以显示的,或者试试alert一个$(this).html(),或者$(this).text()试试吧。

第一个this.name指的是变量name(对应var name="The Window"这个),

第二个this.name指的是object这个map里面的name,this指的是object这个map对象。

this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况:

情况一:纯粹的函数调用 :这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。

情况二:作为对象方法的调用 :函数还可以作为某个对象的方法调用,这时this就指这个上级对象。

情况三 作为构造函数调用 :所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

情况四 apply调用 :apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。