zoukankan      html  css  js  c++  java
  • 函数对象的内部方法call(), apply(), bind()

    这三个函数都是指向函数本身的,call()和apply()的第一参数都是这个函数要执行的上下文对象,之后的参数是这个函数执行要传的参数,不同的地方时call是以枚举的方式传参,apply是以数组的形式传参,当然也可以传递arguments对象。bind()是把该函数绑定到指定的context上下文执行环境中,简单讲就是把该函数的this对象指向传到bind()中的参数context上,并返回一个函数实例。

    简单的写个示例代码我们就可以了然了:

    <script>
        function sayHi(name,greeting){
            var name = name||this.name,
            greeting = greeting||this.greeting;
            console.log("Hello "+name+","+greeting);
        }
         
        var name = "Terry",
        greeting = "how are you?",
        me = {name:"John",
        greeting:"你好!"};
        
        sayHi.call(this,name,greeting);
        sayHi.call(this);
        sayHi.apply(this,[name,greeting]);
        
        sayHi.apply(me,[me.name,me.greeting]);
        sayHi.call(me,me.name,me.greeting);
        //bind()会返回函数实例,后面加()直接执行
        sayHi.bind()();
        sayHi.bind(me)();
        </script>
     

     执行结果:

  • 相关阅读:
    PHP多维数组转为一维数组的方法实例
    PHP内存模拟分析
    linux windows mysql安装
    Ubuntu 连接Xshell 不能连接
    Linux软链挂载
    python 数据库连接 CRUD
    RabbitMQ 实现广播订阅
    Redis 实现广播订阅
    python-切片
    python中的3目运算(3元表达式)
  • 原文地址:https://www.cnblogs.com/dingyuanxin/p/4143042.html
Copyright © 2011-2022 走看看