29、函数的方法

介绍

本文是在学习JS所做的学习笔记,所有笔记内容请看:JS学习笔记

函数的方法(apply 和call )

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    
    function fun(){
        console.log(this);
    }
    
    function fun2(a,b){
        console.log(a);
        cosole.log(b);
    }
    
   var obj={
        name:'obj',
        sayName:function(){
            alert(this.name)
        }
    };
    var obj2={i
        name:'obj',
    }

    1、call()和apply()
      -这两个 方法都是函数对象的方法
       当对函数调用call()和apply()都会调用函数的执行
        // 都会调用函数
      fun.call();
      fun.apply();
   2、在调用call()和apply()可以将一个对象指定为第一个参数
      此时,这个对象将会成为我们函数执行时的this
      用来修改函数执行时的上下文对象
     // 如下,this指向自定义的对象obj
     fun.call(obj);
     fun.apply(obj);
    
      
 3、call()方法可以将实参在对象之后依次传递
    apply()方法需要将实参封装到数组中进行传递
      // 如下,调用fun2()
    fun2.call(obj,2,3);
    fun2.apply(obj,[2,3])
     
 4this情况:
      1.以函数形式调用时,this永远都是window
      2.以方法的形式调用,this是调用方法的对象
      3.以构造函数的形式调用,this是创建的那个对象
      4.使用call()和apply()调用时,this就是指定的那个对象

   obj.sayNam.apply(obj2)// 输出obj2
   
    
 </script>
</head>
<body>
</body>

猜你喜欢

转载自blog.csdn.net/MoonNight608/article/details/106618546
29
今日推荐