js中的this的指向问题详解

 更新时间:2019年08月29日 16:25:58   作者:你妻负我  
这篇文章主要介绍了js中的this的指向问题以及相关知识点内容,需要的朋友们参考学习下。

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象

this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的

普通函数中的this指向:

情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,但是我们这里不探讨严格版的问题,你想了解可以自行上网查找。

情况2:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。

情况3:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象

构造函数中的this指向:

function Fn(){
  this.title= "你好";
}
var a = new Fn();
console.log(a.title); //你好

首先new关键字会创建一个空的对象,然后会自动调用一个函数apply方法,将this指向这个空对象,这样的话函数内部的this就会被这个空的对象替代。

当构造函数的this碰到return时:

如果返回值是一个对象,那么this指向的就是那个返回的对象,如果返回值不是一个对象那么this还是指向函数的实例。

如果返回值是null, null也是对象,但是在这里this还是指向那个函数的实例,因为null比较特殊。

以上就是本次介绍的全部知识点内容,感谢大家对脚本之家的支持。

相关文章

  • JS+CSS实现带关闭按钮DIV弹出窗口的方法

    JS+CSS实现带关闭按钮DIV弹出窗口的方法

    这篇文章主要介绍了JS+CSS实现带关闭按钮DIV弹出窗口的方法,实例分析了div弹出层窗口的实现技巧,非常具有实用价值,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • JavaScript递归函数定义与用法实例分析

    JavaScript递归函数定义与用法实例分析

    这篇文章主要介绍了JavaScript递归函数定义与用法,结合实例形式分析了javascript递归的原理、函数定义、使用方法及操作注意事项,需要的朋友可以参考下
    2019-01-01
  • JavaScript 引用类型之原始值包装类型String

    JavaScript 引用类型之原始值包装类型String

    这篇文章主要介绍了JavaScript 引用类型之原始值包装类型String,String是对应字符串的引用类型。要创建一个String 对象,使用String 构造函数并传入一个数值,更多相关内容需要的朋友可以参考一下
    2022-07-07
  • JavaScript中立即执行函数实例详解

    JavaScript中立即执行函数实例详解

    javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。这篇文章主要给大家介绍了关于JavaScript中立即执行函数的相关资料,需要的朋友可以参考下。
    2017-11-11
  • javascript在IE下trim函数无法使用的解决方法

    javascript在IE下trim函数无法使用的解决方法

    这篇文章主要介绍了javascript在IE下trim函数无法使用的解决方法,分别叙述了javascript以及jQuery下的解决方案,对于WEB前端javascript设计人员进行浏览器兼容性调试有不错的借鉴价值,需要的朋友可以参考下
    2014-09-09
  • threejs太阳光与阴影效果实例代码

    threejs太阳光与阴影效果实例代码

    在Threejs中类似于我们现实世界,物体显示的颜色是由物体本身的颜色及光照的颜色相互叠加而得到的,这篇文章主要给大家介绍了关于threejs太阳光与阴影效果的相关资料,需要的朋友可以参考下
    2022-04-04
  • Bootstrap富文本组件wysiwyg数据保存到mysql的方法

    Bootstrap富文本组件wysiwyg数据保存到mysql的方法

    这篇文章主要为大家详细介绍了Bootstrap富文本组件wysiwyg数据保存到mysql的方法,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Bootstrap响应式导航由768px变成992px的实现代码

    Bootstrap响应式导航由768px变成992px的实现代码

    这篇文章主要介绍了Bootstrap响应式导航由768px变成992px,需要的朋友可以参考下
    2017-06-06
  • Javascript中浏览器窗口的基本操作总结

    Javascript中浏览器窗口的基本操作总结

    BOM全称是brower object model(浏览器对象模型),主要用于管理窗口及窗口间的通讯,其核心对象是window。说窗口,可能并不准确。因为,有的浏览器窗口可能包含多个标签页,每个标签页都有自己的window对象。本文将详细介绍这些内容,有需要可以参考学习。
    2016-08-08
  • js CSS操作方法集合

    js CSS操作方法集合

    用js实现的对css的一些操作方法,集合,方便需要用js控制css的朋友
    2008-10-10

最新评论