码迷,mamicode.com
首页 > 移动开发 > 详细

this指向问题(call、apply、blind),自我理解的

时间:2018-11-02 20:26:28      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:[]   win   nbsp   调用函数   数组   一个   this   返回   方法   

在创建函数的时候,函数自身有一些属性和方法
        
        其中有
            apply、call、bind方法,这些方法都是能够改变this指向的
            
            
            call:有无数的参数
                第一个参数:
                    能够改变this指向,基本上是写啥是啥(null,undefined,设置了还是window)
                
                从第二个参数以后,就是实参(有几个形参就对应几个实参);
function fn(a,b,c,d){
        console.log(this);
        console.log(a+b+c+d);
    }
fn.call(document,1,2,3,4);//改变this指向,有无数个参数
 

 

                
                
            apply:只有2个参数
                第一个参数:
                    能够改变this指向,基本上是写啥是啥(null,undefined,设置了还是window)
                    
                第二个参数:(数组内放置的就是实参)
                    数组[]
function fn(a,b,c,d){
        console.log(this);
        console.log(a+b+c+d);
    }
  fn.apply(document,[1,2,3,4]);//改变this指向,第二个参数是数组
 

 

                    
            上面2个方法,都是使用之后自动执行函数。
                    
            bind,调用了bind方法不是直接执行函数,返回值就为新的函数(一般是改变this之后的函数)
            
                若干参数:
                    第一个参数:
                        能够改变this指向,基本上是写啥是啥(null,undefined,设置了还是window),从第二个参数以后,就是实参(有几个形参就对应几个实参)
                        
function fn(a,b,c,d){
        console.log(this);
        console.log(a+b+c+d);
    }
let f = fn.bind(document);
f(1,2,3,4);//改变了this指向,并且需要重新调用函数。

 

this指向问题(call、apply、blind),自我理解的

标签:[]   win   nbsp   调用函数   数组   一个   this   返回   方法   

原文地址:https://www.cnblogs.com/Allisson/p/9898032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!