call()函数、apply()函数区别与意义
使用apply函数或call函数的意义:
在面对对象编程过程中,当A对象调用其他对象而非A对象方法是,该方法中所有的this引用都指向此方法所在的对象,而不是当前代码的上下文即A对象,
为了保持this的原来的指向(即A对象),则需要使用apply或call函数。
apply()和call()的区别:
apply和call,它们的作用都是将函数绑定到另外一个对象上去运行
原型分别是
Function.prototype.apply(thisArg,argArray);
Function.prototype.call(thisArg,[arg1],[arg2…]]);
从中可以看出,第一个参数都被取名为thisArg,即所有函数内部的this指针都会被赋值为thisArg,使得另外一个对象实例传入函数。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
而区别就在于第二个参数,apply()函数使用数组形式传入数值,call()函数以自由形式直接传入多个数值。
示例:
function Accomodation(){
this.isAlarmed=false;
}
var AlarmSystem={
arm:function(message){
this.isAlarmed=true;
alert(message);
},
disarm:function(message){
this.isAlarmed=false;
alert(message);
}
};
var myHouse = new Accomodation();
AlarmSystem.arm.call(myHouse,"Alarm activated");
alert(myHouse.isAlarmed); //true arm()函数中的this值通过call()指向myHouse对象,使myHouse对象的属性发生改变
AlarmSystem.disarm.apply(myHouse,["Alarm activated"]);
alert(myHouse.isAlarmed); //flase arm()函数中的this值通过call()指向myHouse对象,使myHouse对象的属性发生改变
转载于:https://www.cnblogs.com/Bideam/p/5582526.html
call()函数、apply()函数区别与意义相关推荐
- pandas使用apply函数:在dataframe数据列(column)上施加(apply)函数
pandas使用apply函数:在dataframe数据列(column)上施加(apply)函数 目录 pandas使用apply函数:在dataframe数据列上施加函数 #apply函数的基本语 ...
- pandas的apply函数解析
apply函数 apply函数是pandas里面所有函数中自由度最高的函数.该函数如下: DataFrame.apply(func, axis=0, broadcast=False, raw=Fals ...
- pandas使用教程:apply函数、聚合函数agg和transform
文章目录 apply函数调用 apply函数描述性统计 apply函数lambda自定义 聚合函数aggregate/agg 用字典实现聚合 transform函数 多函数 Transform 重置索 ...
- R语言中的apply函数用法
刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来 ...
- 关于call和apply函数的区别及用法
call和apply函数是function函数的基本属性,都可以用于更改函数对象和传递参数,是前端工程师常用的函数.具体使用方法请参考以下案列: 例如: 申明函数: var fn = function ...
- 定义指令时“控制器”,“链接”和“编译”函数之间的区别
本文翻译自:Difference between the 'controller', 'link' and 'compile' functions when defining a directive ...
- js中bind、call、apply函数的用法
最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web 的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站. ...
- python 多进程 multiprocessing 进程池 pool apply_async()函数与apply()函数的用法
apply函数主要用于传递不定参数,主进程会被阻塞到函数执行结束.也就是说只有apply里面的内容被执行完了,才会进行执行主函数的内容. 参考文章1:python进程池Pool的apply与apply ...
- 方法和函数有什么区别?
有人可以在OOP上下文中提供方法与功能的简单说明吗? #1楼 对我来说:如果我同意:方法的功能和函数的功能是相同的: 一个函数可能返回一个值 可能期望参数 就像任何一段代码一样,您可能要放入对象,结果 ...
最新文章
- Nginx与PHP(FastCGI)的安装、配置、优化
- sklearn 相关性分析_人工智能和大数据的骨架支点—— 机器学习之相关性分析
- cucumber_java从入门到精通(5)使用maven创建cucumber_java项目
- ROS知识【11-1】:建立用户自己的工作空间、功能包
- 本地yum仓库和http方式的yum仓库。
- 深度学习(三)——Autoencoder, 词向量
- js传真实地址 C:\fakepath
- css3 transform实现水平和垂直居中
- NLOPT ros下的使用
- 淘宝双12趣味大数据:150万件打底裤被男人买走了;套套销量暴涨50%...
- Oracle创建表空间,新增用户分配表空间,赋予用户权限
- How to Run Mac OS X in VirtualBox on Windows
- 双11,立减¥3554!戴尔官网撩客服砍价带走高性能电脑,速来!
- openstack详解(二十四)——Neutron服务注册
- HTML5 Now: 深入了解HPolyfills
- jQuery学习笔记之closest()
- 手机内置摄像头接线图解_坚果R2 手机官方壁纸
- 怎么压缩动态图片?手机怎么压缩gif动图?
- igraph study
- 建立牢固的多功能Smartphone应用程序
热门文章
- AT5 two-dimensional objects - the torus and genus
- 注册表的文件关联及应用
- NCFM识别-Googlenet
- android 取出list第一页数据_Android传递ListObject的用法
- layui table勾选框的修改_layui表格(Table)下添加可更新拉选择框select
- 服装关键点检测算法(CNN/STN)含(4点、6点以及8点)
- 文档布局分析 扭曲文档图像恢复
- 重要开源!CNN-RNN-CTC 实现手写汉字识别
- Fixchart图表组件——仪表盘,纳尼?
- Android LayoutInflater概述