zoukankan      html  css  js  c++  java
  • JS学习之bind函数

    定义:

    bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。

    用法:

    bind() 最简单的用法是创建一个函数,不论怎么调用,这个函数都有同样的 this 值。

        <script>
                var  name='hhh';
                function demo(){
                    console.log('demo.name',this.name);
                }
                var a={
                    name:"linjianbin",
                }
            var demo2=    demo.bind(a);
            demo();///hhh
            demo2();//linjianbin
            </script>

    2.bind() 的另一个最简单的用法是使一个函数拥有预设的初始参数。只要将这些参数(如果有的话)作为 bind() 的参数写在 this 后面。当绑定函数被调用时,这些参数会被插入到目标函数的参数列表的开始位置,传递给绑定函数的参数会跟在它们后面。、

            var demo= function(){
                return arguments;
            }
            var demo2=demo.bind(demo,23);
                console.log(demo2(1,2,3,4,5));//23,1,2,3,4,5
            

    3.在默认情况下,使用 window.setTimeout() 时,this 关键字会指向 window (或 global)对象。当类的方法中需要 this 指向类的实例时,你可能需要显式地把 this 绑定到回调函数,就不会丢失该实例的引用。

        <script>
            function LateBloomer() {
              this.petalCount = 10 + 1;
            }
            
            // 在 1 秒钟后声明 bloom
            LateBloomer.prototype.bloom = function() {
              window.setTimeout(this.declare.bind(this), 1000);
            };
            
            LateBloomer.prototype.declare = function() {
              console.log('I am a beautiful flower with ' +
                this.petalCount + ' petals!');
            };
            
            var flower = new LateBloomer();
            flower.bloom();  // 一秒钟后, 调用 'declare' 方法
                
        </script>
  • 相关阅读:
    期末总结
    虚拟存储器学习记录
    实验报告
    并发编程学习记录
    进程&信号&管道实践学习记录
    异常控制流学习记录
    系统级IO实践学习记录
    系统级I/O学习记录
    Arduino小车学习与研究
    期中总结
  • 原文地址:https://www.cnblogs.com/lin494910940/p/12596038.html
Copyright © 2011-2022 走看看