首页 > 其他 > 详细

this指向

时间:2020-03-06 22:43:29      阅读:49      评论:0      收藏:0      [点我收藏+]

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

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

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

    

 

 

es6 中箭头函数的this指向

  箭头函数的this是在定义函数时绑定的,不是在执行过程中绑定的。简单的说,函数在定义时,this就继承了定义函数的对象

    

var a = {
        fn(){
            setTimeout(()=>{
                console.log(this)
            })
        }
    }
    var fn = a.fn
    fn() //此时 指向window

   call()  apply() bind() 改变this 指向

  call()和apply()的区别是 传参方式不一样 第一个参数是指向谁  第二个参数apply要传数组 call 传字符串

  call(null)指向window

  

//求数组的最大值
var arr = [1,2,3,4,7,34,8]     
var max=Math.max.apply(null,arr)  //34   Math.max()参数不能为数组
//求数组的最小值
var max=Math.min.apply(null,arr)  //1 

  Object.prototype.toString.call({}); //"[object Object]"

  Object.prototype.toString.call([]);  //"[object Array]"

 

 

      

 

 

this指向

原文:https://www.cnblogs.com/jshe/p/12431223.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!