JS中this的指向

this 每一个函数内部都有的一个内置变量。
this 永远指向当前函数主人。

1、以下函数的主人是window

        function show(){
            alert(this);  }

2、事件绑定中,this一般情况下指向当前函数的绑定的元素节点

        window.onload = function(){
            var oBtn = document.getElementById("btn1");
            oBtn.onclick = show;

            function show(){
                alert(this);
            }
        }

3、对象中的方法 this指向当前这个对象

        var obj = {
            name: "小明",
            sex: '男',
            age: 18,
            showName: function(){
                alert(obj.name);
                alert(this.name)
            }
        }

        obj.showName();

改变this指向

函数对象下,强制改变this指向的三个方法。

            call
                函数.call()
                第一个参数位置,必定传入的是,this的指向
                从第二个参数开始,是原有的参数,原有参数往后顺延一位

show.call(“call”, 40, 50); //40的下标原来是0,使用call后下标变成了1

            apply
                函数.apply()
                第一个参数位置,必定传入的是,this的指向
                将原有的参数直接放在数组中,传入。

show.apply(“apply”, [30, 40]);

            bind
                函数.bind(this的指向);
                功能:预设this的指向
                返回值:还是原函数(函数中的this被预设了)

只有使用了上述三个方法后,才会改变,如果之后调用函数不使用该方法,则this的指向还是原来的主人。

【注】声明变量要使用var声明,通过var声明的变量有作用域,作用域范围是一个函数的大括号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值