javascript中apply和call方法的作用及区别说明


Posted in Javascript onFebruary 14, 2014

一、call和apply的说明

1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用就当然是针对方法的了,这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同。

2、语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments) == this.foo(arg1, arg2, arg3);

3、相同点:两个方法产生的作用是完全一样的。

4、不同点:方法传递的参数不同。

二、实例代码

<script type="text/javascript">
    function A(){
        this.flag = 'A';
        this.tip = function(){
            alert(this.flag);
        };
    }
    function B(){
        this.flag = 'B';
    }
    var a = new A();
    var b = new B();
    //a.tip.call(b);
    a.tip.apply(b);
</script>

三、代码解释(即说明apply和call作用)

1、实例代码定义了两个函数A和B,A中包含flag属性和tip属性(这个属性赋值一个函数),B中有一个flag属性。

2、分别创建A和B的对象a和b。

3、无论是a.tip.call(b);和a.tip.apply(b);运行的结果都是弹出B。

4、从结果中可以看出call和apply都可以让B对象调用A对象的tip方法,并且修改了this的当前作用对象。

Javascript 相关文章推荐
Jquery ajaxsubmit上传图片实现代码
Nov 04 Javascript
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
Dec 06 Javascript
在localStorage中存储对象数组并读取的方法
Sep 24 Javascript
函数四种调用模式以及其中的this指向
Jan 16 Javascript
JS验证字符串功能
Feb 22 Javascript
vue货币过滤器的实现方法
Apr 01 Javascript
JS闭包的几种常见形式实例详解
Sep 16 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
vue.js项目nginx部署教程
Apr 05 Javascript
Angular 数据请求的实现方法
May 07 Javascript
jQuery获取和设置表单元素的方法
Feb 14 #Javascript
javascript生成json数据简单示例分享
Feb 14 #Javascript
jquery中的$(document).ready()使用小结
Feb 14 #Javascript
javascript 终止函数执行操作
Feb 14 #Javascript
中止javascript执行的方法
Feb 14 #Javascript
js replace替换所有匹配的字符串
Feb 13 #Javascript
Jquery遍历checkbox获取选中项value值的方法
Feb 13 #Javascript
You might like
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
JavaScript修改css样式style
2008/04/15 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
关于js类的定义
2011/06/28 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
Vue列表页渲染优化详解
2017/07/24 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
python 利用toapi库自动生成api
2020/10/19 Python
就业推荐表自我鉴定
2013/10/29 职场文书
安全演讲稿大全
2014/05/09 职场文书
学习保证书
2015/01/17 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS
python使用shell脚本创建kafka连接器
2022/04/29 Python