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(对象,数组),第二个参数只能是数组。
这下应该清楚了=。=+噩梦醒了吧。
分享到:
相关推荐
Common Uses of JavaScript: Image and Windows JavaScript and User Integration: Navigation and Forms Back-End Interaction with Ajax and Node.js Data Validation Techniques Modern JavaScript Case Study: A...
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 callApply代码示例
这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...
全书分两个分卷,共23章.通过大量实例源码讲述各种JS运用.
在JavaScript编程中,`apply`、`call`和`bind`这三个方法被广泛用于改变函数内部`this`的指向,这对于理解和编写复杂的JavaScript代码至关重要。虽然它们的功能相似,但在具体用法上存在一定的差异。 #### 相同之处...
- JSCall可能是指JavaScript调用,工具可能分析JavaScript代码中的函数调用,理解其逻辑和依赖关系。 - 分析这些调用有助于理解脚本如何操作页面元素,触发特定行为,以及它们之间的关系。 5. **使用工具进行脚本...
callapp-lib的核心功能在于,它能够帮助H5页面通过JavaScript代码调用唤起已经安装在用户设备上的特定APP,无论是安卓还是iOS系统。这样,用户在浏览H5内容时,可以无缝地触发APP的功能,例如打开特定页面、进行支付...
JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》...
* 实验内容三:JavaScript 函数和控制结构 实验目标: * 掌握 JavaScript 变量、表达式和运算符的使用 * 掌握 JavaScript 对话框的使用 * 掌握 JavaScript 函数的定义和调用 * 掌握 JavaScript 控制结构的使用 ...
分三部分上传,此为卷二 内容简介 本书旨在向读者介绍以JavaScript为核心的RIA开发。 全书共分为5篇。JavaScript基础篇:介绍JavaScript的语法和基础应用。如果不打算深究JavaScript幕后机制的话,运用本篇的...
- **特点与其他语言对比**:JavaScript的独特之处。 - **运行环境**:介绍JavaScript执行的环境。 - **简单示例**:编写第一个JavaScript程序。 **第十七章:JavaScript基本数据结构** - **代码嵌入方法**:将...
在JavaScript中,`apply`和`call`是两种非常重要的函数调用方式,它们都用于改变函数内部`this`的指向以及动态传递参数。这两者的主要区别在于参数的传递方式。 首先,`this`在JavaScript中是一个关键字,它在不同...
本文将详细解释JavaScript中call(), apply(), 和 bind() 方法的作用、语法以及使用场景,并且会探讨回调函数的使用,帮助理解这些概念在实际编程中的应用。 首先,我们来探讨call() 和 apply() 方法。这两个方法都...
4. a 标签的 href 属性可以设置 JavaScript 代码,例如 `href="javascript:void(0)"`,这样可以避免页面跳转,同时也可以使用 JavaScript 函数进行处理。 5. form 表单中的提交按钮可以绑定 onclick 事件,通过 ...
#### 三、Flex调用JavaScript方法 **1. Flex调用JavaScript方法** - **语法示例**: ```actionscript ExternalInterface.call("javascriptfunction", "param"); ``` - **解释**:这段代码表示通过Flex的`...
在JavaScript的世界里,caller、callee、call和apply是四个非常重要的概念,它们涉及到函数的调用方式和执行上下文。这些知识点对于深入理解和优化代码至关重要,尤其在处理高阶函数和面向对象编程时。 首先,让...
JavaScript,作为全球最广泛使用的脚本语言之一,是构建网页动态功能和交互性的基石。《编程实践:JavaScript进阶100例》是一份专为初级JavaScript学习者设计的资源,旨在通过丰富的实例帮助初学者深入理解这门语言...