函数对象的内部方法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)
上一篇 2021年9月2日 下午4:00
下一篇 2021年9月2日 下午4:00


相关推荐

  • 一款自制的视频录制软件

    一款自制的视频录制软件是利用opencv库的,平时自己需要录制东西,但是网上大部分的软件只录制屏幕,不能录制摄像头视屏,所以自己动手弄了个不是特别好用,但也讲究这凑合程序源代码:http://download.csdn.net/source/3578833

    2022年6月17日
    28
  • ~按位取反_按位取反什么意思

    ~按位取反_按位取反什么意思inta=0;intb=~a;System.out.println(b);  // -1计算方法:因为整形是32位有符号补码整数表示的。因此将整形转换为二进制后为:a 十进制0二进制00000000000000000000000000000000~a的二进制1111111111111111111111111

    2022年8月15日
    12
  • centos7安装python3.7_安装python教程

    centos7安装python3.7_安装python教程文章目录前言环境&组件说明组件用途说明准备阶段安装步骤详细步骤准备安装安装Python异常处理异常信息原因分析处理方法小技巧前言工作需要,服务器不能连接外网,因此需要离线安装。推荐在线安装,参考。环境&组件说明操作系统:CentOSLinuxrelease7.4.1708(Core)操作系统安装包:CentOS-7-x86_64-Minimal-1708.isoPython版本:3.8.5pip版本:20.1.1virtualenv版本:20.4.2组件用途说

    2026年3月8日
    4
  • python 画折线图 并标记

    首先安装plt相关的包,其实也就是画图相关的包,好像叫做Matplotlib无所谓,安装包的命令行给你,直接粘,然后复制代码,直接跑就好pipinstallpytest-plt下面就是代码了importmatplotlib.pyplotaspltx=[0,20,40,60,80,100,120,140,160,180,200]y=[0,2.3,4.5,6.5,8.5,9.9,10.9,11.9,12.5,12.9,13.4]x2=[0,20,40,60,80,10

    2022年4月6日
    71
  • flask框架的使用

    flask框架的使用文章目录一 路由二 常用的 HTTP 方法三 构造 URL 函数四 MVC 设计模型五 渲染模板一 路由路由 处理 URL 和视图函数的这种关系 访问 index 则执行 index 视图函数 fromflaskimp Flask name app route defhello world return HelloWorld 可变 动态 app route user username de username

    2026年3月26日
    1
  • WebJars介绍

    WebJars介绍参考文章 WebJars web 端静态资源的 jar 包 1 WebJars 介绍 Web 前端使用了越来越多的 JS 或 CSS 如 jQuery Backbone js 和 Bootstrap 一般情况下 我们是将这些 Web 资源拷贝到 JavaWeb 项目的 webapp 相应目录下进行管理 这种通过人工方式管理可能会产生版本误差 拷贝版本错误 漏拷等现象 导致前端页面无法正确展示 版本不一致 文件混乱等 导致出现一些莫

    2026年3月19日
    1

发表回复

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

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