• bind函数(二)


    bind()最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this值。常见的错误就像下面的例子一样,将方法从对象中拿出来,然后调用,并且希望this指向原来的对象。如果不做特殊处理,一般会丢失原来的对象。使用bind()方法能够很漂亮的解决这个问题

    <script type="text/javascript">
    
    this.num = 9; 
    var module = { 
    num: 81,
    getNum: function(){
    console.log(this.num);
    }
    };
    
    module.getNum(); // 81 ,this->module
    
    var getNum = module.getNum;
    getNum(); // 9, this->window or global
    
    var boundGetNum = getNum.bind(module); 
    boundGetNum(); // 81,this->module
    
    </script>

    bind() 方法会创建一个新函数,当这个新函数被调用时,它的 this 值是传递给 bind() 的第一个参数, 它的参数是 bind() 的其他参数和其原本的参数。

    语法是这样样子的:

    fun.bind(thisArg[, arg1[, arg2[, ...]]]) ;   

    函数.bind(this上下文参数, 普通参数1, 普通参数2, ...);


    thisArg 当绑定函数被调用时,该参数会作为原函数运行时的 this 指向。当使用 new 操作符调用绑定函数时,该参数无效。
    arg1, arg2, … (可选)当绑定函数被调用时,这些参数加上绑定函数本身的参数会按照顺序作为原函数运行时的参数。

  • 相关阅读:
    bzoj1036 [ZJOI2008]树的统计Count(树链剖分)
    poj2348 Euclid's Game
    bzoj3575 [Hnoi2014]道路堵塞
    poj2484 A Funny Game
    bzoj2286 [Sdoi2011]消耗战
    虚树学习笔记
    bzoj4518 [Sdoi2016]征途
    node.js开发环境配置
    js中阻止事件冒泡和浏览器默认行为
    css3 background-clip和background-origin 区别
  • 原文地址:https://www.cnblogs.com/Jerry-spo/p/6439086.html
Copyright © 2020-2023  润新知