call,apply,bind简述

6 篇文章 0 订阅
本文探讨了JavaScript中的函数调用方式,包括fn()、fn.call()和fn.apply(),详细解释了this的指向变化。通过示例展示了在不同调用场景下,this如何指向对象实例,并且演示了参数传递的差异。同时提到了fn.bind()方法,指出其能固定this指向但不会立即执行函数,需重新调用才能运行。
摘要由CSDN通过智能技术生成
  function fn(){
            console.log(this);   //this指向window
        }
        fn.call();  //可以直接使用,但无意义
***********************************************************************************
        function fn(n,m){
            console.log(this);   //分别被call和apply调用,所以this指向obj1 或指向obj2
            console.log(this.name);  //张三   |   李四
            this.say();
            console.log(n,m);        //222  333   |   444   555
        }
        var obj1 = {
            name:"张三",
            age:18,
            say(){
                console.log("我叫"+this.name)
            }
        }
        var obj2 = {
            name:"李四",
            age:20,
            say(){
                console.log("年龄"+this.age)
            }
        }
        fn.call(obj1,222,333);   //fn中this指向obj1,传两个参数,fn会立即执行

        fn.apply(obj2,[444,555]);  //fn中this指向obj2,以数组形式传两个参数,fn会立即执行
**********************************************************************************
		
		fn.bind(obj1);    //this指向obj1,但不能传值,fn也不会立即执行,fn要执行需要重新调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值