您的位置:首页 > Web前端 > JavaScript

bind(this)绑定this指向的对象、箭头函数和闭包

2017-06-27 17:33 561 查看
用bind(this),就是绑定this指向这个组件

componentDidMount: function () {

          this.timer = setInterval(function () {

            var opacity = this.state.opacity;

            opacity -= .05;

            if (opacity < 0.1) {

              opacity = 1.0;

            }

            this.setState({

              opacity: opacity

            });

          }.bind(this), 100);//绑定this指向这个组件,不绑定setInterval就会指向undefined

       }

用箭头函数setInterval里面函数的this会继承外层的this

componentDidMount: function () {

            

              that.timer =setInterval(()=>{

            var opacity=this.state.opacity;

            opacity-=0.05;

            if(opacity<0.1){

                opacity=1.0;

            }

            this.setState({

                opacity:opacity

            })

        },100)

 },

闭包,把this传到function里用that接收

componentDidMount: function () {

            (function (that) {

              that.timer = setInterval(function () {

                var opacity = that.state.opacity;

                opacity -= .05;

                if (opacity < 0.1) {

                  opacity = 1.0;

                }

                that.setState({

                  opacity: opacity

                });

              }, 100);

            })(this)  

        },
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息