函数对象的内部方法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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 桌面关闭防火墙,Linux关闭防火墙的方法步骤

    linux 桌面关闭防火墙,Linux关闭防火墙的方法步骤windows 操作系统的防火墙好关闭 但是 linux 操作系统防火墙可能有很多新手朋友不会关闭 下面就让学习啦小编教大家 Linux 关闭防火墙的方法吧 Linux 关闭防火墙的方法首先我们打开 linux 操作系统 小编以 fedora 操作系统为例 虽然 linux 提倡命令行操作 但是很多用户可能不是十分习惯 因此很多 linux 操作系统都有桌面图形界面 跟 windows 操作系统很像 也更加方便了我们的操作 我

    2025年11月14日
    3
  • Linux学习——Shell基础[通俗易懂]

    Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至编写一些程序。Shell 还是一个功能强大的编程,易编写、易调试、灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。用户通过shell向Linux内核发指令,Linux内核通过shell将返回

    2022年2月26日
    55
  • linux卸载nps,Linux NPS服务部署

    linux卸载nps,Linux NPS服务部署一.安装NFS服务rpm-qa|grepnfsrpm-qa|greprpcbindyuminstallnfs-utils#如果检查的结果是没有安装,则使用该命令安装/etc/init.d/rpcbindstart/etc/init.d/nfsstart二.NFS的软件结构1.主要配置文件:/etc/exports这个档案就是NFS的主要配置文件了!…

    2022年5月2日
    218
  • springboot整合rabbitmq,动态创建queue和监听queue

    springboot整合rabbitmq,动态创建queue和监听queue1、pom.xml添加如下依赖&lt;dependency&gt;&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;&lt;artifactId&gt;spring-boot-starter&lt;/artifactId&gt;&lt;/dependency&gt;…

    2022年5月14日
    146
  • 外贸进出口贸易海关报关管理_进口报关单贸易国怎么填

    外贸进出口贸易海关报关管理_进口报关单贸易国怎么填附加费分摊?发票张数?发票号码???分摊原则单?项?摊□确定选择子项分摊???单张同类摊□确定?执行。。。。。。??单项分摊附加费即直接选择子项将费用加入,修改数据。单项分摊附加费即直接选择子项将费用加入,修

    2026年2月6日
    5
  • MySQL修改表名注释「建议收藏」

    MySQL修改表名注释「建议收藏」MySQL修改表名注释altertabletest1comment’修改后的表的注释’;

    2022年6月1日
    44

发表回复

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

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