JS基础归纳三、this的不同使用场景、call apply bind

关于this几种不同的使用场景
        //1.作为构造函数执行
        //2.作为对象属性执行
        //3.普通函数执行
        //call apply bind
代码如下:

        function Foo(name) {
            this.name = name //this 就是构造函数Foo
        }
        var f = new Foo('zhansan')
        var obj = {
            name :'A',
            printName: function() {
                console.log(this.name) //this 就是对象obj
            }
        }

        obj.printName() //执行对象属性 
        function fn() {
            console.log(this) //作为普通函数就是 Window
        }

        fn()

        // call apply bind
        function fnnn(name, age){
            alert(name)
            console.log(this) 
        }
        fnnn.call({x: 100}, 'zhansan',20) //执行时第一个参数( { x: 100})作为this    多数使用call

        function fnnn2(name, age){
            alert(name)
            console.log(this) 
        }
        fnnn2.apply({x: 100}, ['zhansan',20]) //第一个参数( { x: 100})作为this,后面数组作为函数参数

        var fnnn3 = function (name, age){
            alert(name)
            console.log(this) 
        }.bind({y: 200}) //在函数定义时,this指定为{y:200}
        fnnn3(zhansan,20) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值