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 DOM操作小结与实例
Jan 07 Javascript
jquery 打开窗口返回值实现代码
Mar 04 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 Javascript
jquery根据属性和index来查找属性值并操作
Jul 25 Javascript
Js可拖拽放大的层拖动特效实现方法
Feb 25 Javascript
JS实现的表格行鼠标点击高亮效果代码
Nov 27 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
Nov 01 Javascript
react-native fetch的具体使用方法
Nov 01 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
原生JS实现汇率转换功能代码实例
May 13 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
python实现简单登陆系统
2018/10/18 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
详解python持久化文件读写
2019/04/06 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
大学毕业生简单自荐信
2013/11/05 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
高三励志标语
2014/06/05 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
介绍信格式样本
2015/05/05 职场文书
婚姻出轨保证书
2015/05/08 职场文书
暂住证证明
2015/06/19 职场文书
2015中学学校工作总结
2015/07/20 职场文书
mysql数据库实现设置字段长度
2022/06/10 MySQL