函数对象的内部方法call(), apply(), bind()

函数对象的内部方法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>

 

 

 执行结果:

函数对象的内部方法call(), apply(), bind()

转载于:https://www.cnblogs.com/dingyuanxin/p/4143042.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109632.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号