• 技术文章 >web前端 >js教程

    javascript中bind是什么意思

    藏色散人藏色散人2021-04-25 10:49:28原创955

    javascript中bind是EcmaScript5新增的方法,bind()方法用于创建一个新的函数,当被调用时,将其this关键字设置为提供的值,在调用新函数时,在任何提供之前提供一个给定的参数序列。

    本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

    浅谈js中的bind

    这篇文章主要介绍了js中的bind应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    提到bind方法,估计大家还会想到call方法、apply方法;它们都是Function对象内建的方法,它们的第一个参数都是用来更改调用方法中this的指向。需要注意的是bind 是返回新的函数,以便稍后调用;apply 、call 则是立即调用原函数 。而今天我们主要讲解bind方法的理解与使用。

    bind方法是EcmaScript5新增的方法,该方法在mdn上是这么介绍的:

    bind()方法创建一个新的函数(称为绑定函数), 当被调用时,将其this关键字设置为提供的值,在调用新函数时,在任何提供之前提供一个给定的参数序列。

    语法:

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

    参数thisArg表示:当绑定函数被调用时,该参数会作为this的指向。当使用new 操作符调用绑定函数时,该参数无效。

    参数arg1, arg2, …表示:当绑定函数被调用时,这些参数将置于实参之前传递给被绑定的方法。

    先来看个例子:

    this.name="jack";
    var demo={
    name:"rose",
    getName:function(){return this.name;}
    }
     
    console.log(demo.getName());//输出rose 这里的this指向demo
     
    var another=demo.getName;
    console.log(another())//输出jack 这里的this指向全局对象
      
    //运用bind方法更改this指向
    var another2=another.bind(demo);
    console.log(another2());//输出rose 这里this指向了demo对象了

    bind的应用

    可以对一个函数预设初始参数:

    function a(){
    return Array.prototype.slice.call(arguments);//将类数组转换成真正的数组
    }
    var b=a.bind(this,15,20)
    alert(b());//弹出 15,20
    var s=b(25,30);
    alert(s);//弹出 15,20,25,30

    js bind的多次绑定只有第一次是有效的

    var getname = function(){console.log(this.name)};
    var m = getname.bind({name:'q1'}).bind({name:'q2'});
    m();

    输出的是q1

    【推荐学习:javascript高级教程

    以上就是javascript中bind是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:javascript
    上一篇:详解Angular中组件间通讯的几种方法 下一篇:javascript的基本语句有什么
    大前端线上培训班

    相关文章推荐

    • 一招搞定JavaScript猜数字小游戏• javascript怎么实现秒转时间• javascript怎么移除数组元素• 不属于javascript的数据类型是什么• javascript特权方法有什么用

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网