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 相关文章推荐
javascript 子窗体父窗体相互传值方法
May 31 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
JavaScript运算符小结
Jun 03 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
Javascript类型系统之String字符串类型详解
Jun 21 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
Apr 13 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
详解JS构造函数中this和return
Sep 16 Javascript
浅谈node的事件机制
Oct 09 Javascript
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
vue实现广告栏上下滚动效果
Nov 26 Vue.js
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基础知识:类与对象(1)
2006/12/13 PHP
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
MySQL修改密码方法总结
2008/03/25 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
javascript中常用编程知识
2013/04/08 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python实现RSA加密(解密)算法
2016/02/17 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
小学开学寄语
2014/01/19 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
刘胡兰观后感
2015/06/16 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
windows server2008 开启端口的实现方法
2022/06/25 Servers