JS中this的指向问题

1.当一个函数在全局被调用时,就相当于是 window 在调用这个函数,因此 this 指向 window


结果:


2.当一个函数是对象中的一个属性,通过对象调用这个方法时,this 指向这个对象(谁调用了这个函数,this就指向谁)

例子1:


结果:




例子2:obj 对象中嵌套 obj2 对象


结果:




例子3:如果在全局中把对象中的一个函数赋值给了一个全局变量,则 this 指向 window

结果:



3.在使用构造函数时,如果在一个函数前面加上new关键字来调用,那么就会创建一个连接到该函数的prototype成员的新对象;如果被调用的函数没有显式的 return 表达式(仅限于返回对象),则隐式的会返回 this 对象 - 也就是新创建的对象。


注意:显式的返回以下值:undefined, null, boolean, number等基础类型,并不会代替 new 式调用的默认行为。

            但显式返回以下值:{},[],RegExp, Date, Function,均会代替 new 调用的默认返回值 this.



没有return 

结果:



return null:

结果不变:



return 1:

结果不变:


return {}:

结果为undefine:



return [ ]:

结果为undefine:


4.使用 call 和 apply 改变 this 指向(指向你传进去的对象):

 

结果:


5.匿名函数中this指向,匿名函数在全局作用域中执行,具有全局性,所以匿名函数中的 this 指向 window:


结果:


最后:有错误欢迎指出!!!!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容