为了解释方便,先创建一个函数:

function showmsg(){ console.log(this);}

它的作用是打印this这个对象,也方便我们了解它到底指代什么。

一、直接调用

showmsg();

结果:

Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…}

可知,直接调用时,其中的this就是顶层对象window。

二、作为构造函数调用

var obj = new showmsg();

结果:

showmsg {}

调用之后,创建了一个类型和函数同名的对象。this指代这个对象。

三、作为方法调用

var obj = {showmsg: showmsg};obj.showmsg();

结果:

Object {showmsg: function}

其中this就是那个被绑定的对象。

四、function.call

showmsg.call({});

结果:

Object {}

call的第一个参数是什么,里面的this就是什么。如果需要传参数的话,附在后面即可。而且这种可以只调用不绑定。

此外,直接调用相当于:

showmsg.call(null);

如果第一个参数是null,那么里面的this则是顶层对象window。

作为构造函数调用相当于:

var obj = {};obj.__proto__ = showmsg;showmsg.call(obj);

Javascript中四种函数调用方式相关推荐

  1. JavaScript中七种函数调用方式及对应 this 的含义

    http://blog.sina.com.cn/s/blog_621f1e120100rj21.html this 在 JavaScript 开发中占有相当重要的地位,不过很多人对this这个东西都感 ...

  2. JavaScript中四种不同的属性检测方式比较

    JavaScript中四种不同的属性检测方式比较 1. 用in方法 var o = {x:1}; "x" in o; //true "y" in o; //fa ...

  3. 【读MFiX源代码】MFiX中四种传热方式全面详解(对流、导热、辐射、反应热)并且输出以供后处理(2020-12-15更新)

    文章目录 1 目标 2 代码结构 2.1 des_time_step外层总控制 2.2 颗粒导热 2.2.1 颗粒-颗粒导热:calc_force_dem.f和des_thermo_cond_mod. ...

  4. C++中四种类型转换方式

    C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a,但是c 风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型 ...

  5. C++中四种类型转换方式(ynamic_cast,const_cast,static_cast,reinterpret_cast)

    Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变一个变量的类型为别的类型从而 ...

  6. JavaScript中6种继承方式总结

  7. 在js中加html_在HTML文档中嵌入JavaScript的四种方法

    在HTML里嵌入JavaScript 在HTML文档里嵌入客户端JavaScript代码有4中方法: 1.内嵌,放置在标签之间  (少): 2.放置在有 3.放置自HTML事件处理程序中,该事件处理程 ...

  8. php xml 四种,xml中常见的四种解析方式是什么?

    xml解析方式有:1.DOM解析方法,可以对xml文档进行修改操作:2.SAX解析方法,解析速度快,占用内存少:3.JDOM解析方法,查找方便:4.DOM4J解析方法,解析XML的速度快. 在XML的 ...

  9. tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例

    本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?n ...

最新文章

  1. 设计模式解析(五)——几种设计模式之Facade和Adapter
  2. 【Whalepaper】CV论文研读 - Involution内卷:超越Convolution的新算子
  3. 第二课unit11 系统恢复技术
  4. pixhawk自学笔记之px4程序启动顺序
  5. CF388C-Fox and Card Game【博弈论,结论】
  6. 从串口驱动的移植看linux2.6内核中的驱动模型 platform device platform driver【转】...
  7. [多重背包+二进制优化]HDU1059 Dividing
  8. 2018阿里编程测验题:最短汉密尔顿回路
  9. 谷歌发布自然问答数据集 Natural Questions
  10. 前端获取视频第一帧作为封面
  11. PMP第六版备考笔记练习题答疑(持续更新)
  12. 怎么把照片背景变成蓝色
  13. Unity的读表,存档,读档
  14. 再现隐私之争_反谷歌FLoC联盟: selenium谷歌浏览器报错: Error with Permissions-Policy header
  15. 使用同步锁来实现线程安全---生产者与消费者
  16. 下载上市公司财报并可视化某科目
  17. Java SE、Java ME、Java EE是什么以及关系
  18. 个人电脑创建mysql数据库
  19. [Paper Reading] Dynamo: Amazon‘s Highly Available Key-value Store
  20. 实测一种动态再平衡投资策略

热门文章

  1. win7如何安装mysql5.7_Win7下安装MySQL5.7备忘
  2. 【Python】eval+random库+字符串转列表+列表转字符串
  3. 数字图像处理(作业四)——边缘表达
  4. 计算机网络(五)——组建客户机/服务器网络
  5. netlink 学习笔记 3.8.13内核
  6. 嵌入式Linux系统编程学习之十二守护进程
  7. 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)
  8. Jackson,Gson,Fastjson比较
  9. ubuntu server 下使用subversion的总结【原创】
  10. Floyed(floyd)算法详解