Javascript中四种函数调用方式
为了解释方便,先创建一个函数:
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中四种函数调用方式相关推荐
- JavaScript中七种函数调用方式及对应 this 的含义
http://blog.sina.com.cn/s/blog_621f1e120100rj21.html this 在 JavaScript 开发中占有相当重要的地位,不过很多人对this这个东西都感 ...
- JavaScript中四种不同的属性检测方式比较
JavaScript中四种不同的属性检测方式比较 1. 用in方法 var o = {x:1}; "x" in o; //true "y" in o; //fa ...
- 【读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. ...
- C++中四种类型转换方式
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a,但是c 风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型 ...
- C++中四种类型转换方式(ynamic_cast,const_cast,static_cast,reinterpret_cast)
Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变一个变量的类型为别的类型从而 ...
- JavaScript中6种继承方式总结
- 在js中加html_在HTML文档中嵌入JavaScript的四种方法
在HTML里嵌入JavaScript 在HTML文档里嵌入客户端JavaScript代码有4中方法: 1.内嵌,放置在标签之间 (少): 2.放置在有 3.放置自HTML事件处理程序中,该事件处理程 ...
- php xml 四种,xml中常见的四种解析方式是什么?
xml解析方式有:1.DOM解析方法,可以对xml文档进行修改操作:2.SAX解析方法,解析速度快,占用内存少:3.JDOM解析方法,查找方便:4.DOM4J解析方法,解析XML的速度快. 在XML的 ...
- tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例
本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?n ...
最新文章
- 设计模式解析(五)——几种设计模式之Facade和Adapter
- 【Whalepaper】CV论文研读 - Involution内卷:超越Convolution的新算子
- 第二课unit11 系统恢复技术
- pixhawk自学笔记之px4程序启动顺序
- CF388C-Fox and Card Game【博弈论,结论】
- 从串口驱动的移植看linux2.6内核中的驱动模型 platform device platform driver【转】...
- [多重背包+二进制优化]HDU1059 Dividing
- 2018阿里编程测验题:最短汉密尔顿回路
- 谷歌发布自然问答数据集 Natural Questions
- 前端获取视频第一帧作为封面
- PMP第六版备考笔记练习题答疑(持续更新)
- 怎么把照片背景变成蓝色
- Unity的读表,存档,读档
- 再现隐私之争_反谷歌FLoC联盟: selenium谷歌浏览器报错: Error with Permissions-Policy header
- 使用同步锁来实现线程安全---生产者与消费者
- 下载上市公司财报并可视化某科目
- Java SE、Java ME、Java EE是什么以及关系
- 个人电脑创建mysql数据库
- [Paper Reading] Dynamo: Amazon‘s Highly Available Key-value Store
- 实测一种动态再平衡投资策略
热门文章
- win7如何安装mysql5.7_Win7下安装MySQL5.7备忘
- 【Python】eval+random库+字符串转列表+列表转字符串
- 数字图像处理(作业四)——边缘表达
- 计算机网络(五)——组建客户机/服务器网络
- netlink 学习笔记 3.8.13内核
- 嵌入式Linux系统编程学习之十二守护进程
- 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)
- Jackson,Gson,Fastjson比较
- ubuntu server 下使用subversion的总结【原创】
- Floyed(floyd)算法详解