bind,call和apply的区别

bind,call和apply的区别

bind call 和apply都可以改变this指向的 但是call和apply可以自动执行而bind需要手动执行

call可以传多个参数,而apply只能传一个参数就是数组的格式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    var obj1 = {
    
    
        name:"obj1",
        getName(){
    
    
            console.log(this.name);
        }
    }
    var obj2 = {
    
    
        name:"obj2",
        getName(){
    
    
            console.log(this.name);
        }
    }

// obj1.getName()  //obj1
obj1.getName.call(obj2,"aaa","bbb","ccc") //obj2 改变this指向,立即执行方法
// obj1.getName.apply(obj2,["aaa","bbb","ccc"]); //obj2 改变this指向,立即执行方法
// obj1.getName.bind(obj2,"aaa","bbb","ccc")()  //改变this指向 ,手动执行方法

// 所以总结如下 bind call 和apply都可以改变this指向的 但是call和apply可以自动执行而bind需要
//手动执行

//而call可以传多个参数,而apply只能传一个参数就是数组的格式



 



</script>

猜你喜欢

转载自blog.csdn.net/yang939207690/article/details/104786070