Call这个东西也不是很好理解的=。=+,如果你之前一直在学JAVA或者C++,而后才接触JS的话,call可能就是你的一个噩梦。噩梦归噩梦,只要醒了也就没事了,下面就是把你打醒的过程,而且此过程无任何疼痛感,就是给你泼一个冷水,一下子就清醒了。
依然是先看定义:call:执行与此对象相关联的代码。通过函数调用表达式启用它。实现这个内部方法的对象被称为 函数。
手册上的解释为:调用对象的一个方法,以另一个对象替换当前对象。call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
还是手册上解释的浅显易懂,其实call的用法就是如下了。
C对象.A方法.call(B对象)
很简单,call这个方法就相当于把C对象的方法A抢过来,塞到对象B的肚子里,然后根据对象B的情况来调用A方法。看下面例子
function who(){
alert(this.name);
};
window.who();
var me = {name:"aaa"};
me.who = who;
me.who();
var c = {};
who.call(c);//c里没有name属性,显示未定义
me.who.call(c);//c里没有name属性,显示未定义
c.name="MMM";
me.who.call(c);//c里有了name属性,显示MMM
如果方法要传入参数的话,就这么写,me.who.call(c,参数1, 参数2....)当然,这个例子里不需要参数。
顺便说一下,这个CALL还可以用来模拟C++中的多继承,具体怎么用,随便一搜就懂了,反正也只是利用CALL方法本来的特性而已。还有一个apply方法和call用法基本相同,只不过apply后面要这样写apply(对象,数组),第二个参数只能是数组。
这下应该清楚了=。=+噩梦醒了吧。
分享到:
相关推荐
JavaScript程序设计 函数的调用方式 5.2.2 函数的调用方式 概念 当函数定义完成后,要想在程序中发挥函数的作用,必须得调用这个函数。 函数的调用非常简单,只需引用函数名,并传入相应的参数即可。 函数声明与调用...
原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: 978-0596805524 发行时间: 2011年05月...
在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...
内容概要:本文详细介绍了 JavaScript 中的三个用于改变函数内部 this 指向的方法——call()、apply() 和 bind() 的具体用法、区别和自定义实现方式。作者不仅提供了详细的解释说明和代码演示来展示三者的异同及其...
javascript callApply代码示例
这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...
全书分两个分卷,共23章.通过大量实例源码讲述各种JS运用.
JavaScript中的call、apply和bind方法都是用来改变函数调用时的上下文(即this值)以及传递参数。它们之间的相同点在于,都能够指定函数执行时的this对象,并且都能接收参数。不同点在于它们的调用方式和执行时机。 ...
在JavaScript编程中,`apply`、`call`和`bind`这三个方法被广泛用于改变函数内部`this`的指向,这对于理解和编写复杂的JavaScript代码至关重要。虽然它们的功能相似,但在具体用法上存在一定的差异。 #### 相同之处...
- JSCall可能是指JavaScript调用,工具可能分析JavaScript代码中的函数调用,理解其逻辑和依赖关系。 - 分析这些调用有助于理解脚本如何操作页面元素,触发特定行为,以及它们之间的关系。 5. **使用工具进行脚本...
JavaScript是一种广泛用于网页开发的脚本语言,它是实现Web前端交互功能的核心技术之一。在给定的文件内容中,我们可以提取到关于JavaScript的多个知识点: 1. JavaScript的变量类型:JavaScript中主要有几种基本的...
callapp-lib的核心功能在于,它能够帮助H5页面通过JavaScript代码调用唤起已经安装在用户设备上的特定APP,无论是安卓还是iOS系统。这样,用户在浏览H5内容时,可以无缝地触发APP的功能,例如打开特定页面、进行支付...
JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》...
JavaScript中的call、apply、bind方法都是改变函数执行上下文的内置方法。这些方法的核心功能是改变函数运行时的this指向,即决定函数执行时应当将哪个对象视为其主体。理解这些方法的机制对于理解JavaScript中的...
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaScript系列(3):全面解析Module模式 深入理解JavaScript系列(4):立即调用...
Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的基本原理以及如何将这些原理应用于JavaScript中。 #### 二、面向对象编程基础 面向对象编程...
- **特点与其他语言对比**:JavaScript的独特之处。 - **运行环境**:介绍JavaScript执行的环境。 - **简单示例**:编写第一个JavaScript程序。 **第十七章:JavaScript基本数据结构** - **代码嵌入方法**:将...
本文将详细解释JavaScript中call(), apply(), 和 bind() 方法的作用、语法以及使用场景,并且会探讨回调函数的使用,帮助理解这些概念在实际编程中的应用。 首先,我们来探讨call() 和 apply() 方法。这两个方法都...
为论文收集的统计数据、研究中使用的调用图、调用图的输入程序和用于收集论文数据的插装输入程序dynamic-call-graph:动态调用图 Java 项目,使用编辑过的 Rhino 版本检测 JavaScript 程序。 此外,它有一个后处理器...