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 select控制插件
Aug 17 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
Jul 02 Javascript
jquery实现的一个文章自定义分段显示功能
May 23 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
Node.js Buffer用法解读
May 18 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
基于JavaScript实现单例模式
Oct 30 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制作静态网站的模板框架(三)
2006/10/09 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
php中数组最简单的使用方法
2020/12/27 PHP
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
python实现Adapter模式实例代码
2018/02/09 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python实现异步IO的示例
2020/11/05 Python
python实现定时发送邮件
2020/12/23 Python
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
中文师范生自荐信
2014/01/30 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
小学教师工作总结2015
2015/04/07 职场文书
python实现过滤敏感词
2021/05/08 Python
Python一些基本的图像操作和处理总结
2021/06/23 Python
JavaScript实现音乐播放器
2022/08/14 Javascript