`
mdf1987
  • 浏览: 6951 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

javascript难点之三:没有见过的怪物call

阅读更多
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(对象,数组),第二个参数只能是数组。
这下应该清楚了=。=+噩梦醒了吧。
分享到:
评论

相关推荐

    Beginning JavaScript with DOM Scripting and Ajax: Second Editon

    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程序设计课件:函数的调用方式.pptx

    JavaScript程序设计 函数的调用方式 5.2.2 函数的调用方式 概念 当函数定义完成后,要想在程序中发挥函数的作用,必须得调用这个函数。 函数的调用非常简单,只需引用函数名,并传入相应的参数即可。 函数声明与调用...

    JavaScript权威指南(第6版).JavaScript:The.Definitive.Guide

    原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: 978-0596805524 发行时间: 2011年05月...

    Javascript类的继承,使用this.callParent调用超类方法

    在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...

    javascript callApply代码示例

    javascript callApply代码示例

    Javascript - 全面理解 caller,callee,call,apply (转载)

    这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...

    JavaScript实例自学手册:通过486个例子掌握WEB开发捷径

    全书分两个分卷,共23章.通过大量实例源码讲述各种JS运用.

    javascript中apply、call和bind的用法区分_.docx

    在JavaScript编程中,`apply`、`call`和`bind`这三个方法被广泛用于改变函数内部`this`的指向,这对于理解和编写复杂的JavaScript代码至关重要。虽然它们的功能相似,但在具体用法上存在一定的差异。 #### 相同之处...

    网页javascript脚本语言提取器

    - JSCall可能是指JavaScript调用,工具可能分析JavaScript代码中的函数调用,理解其逻辑和依赖关系。 - 分析这些调用有助于理解脚本如何操作页面元素,触发特定行为,以及它们之间的关系。 5. **使用工具进行脚本...

    callapplib是一个H5唤起APP的解决方案能够满足大部分唤端场景

    callapp-lib的核心功能在于,它能够帮助H5页面通过JavaScript代码调用唤起已经安装在用户设备上的特定APP,无论是安卓还是iOS系统。这样,用户在浏览H5内容时,可以无缝地触发APP的功能,例如打开特定页面、进行支付...

    JavaScript核心技术 PDF扫描版

    JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》...

    javascript程序设计实验1.docx

    * 实验内容三:JavaScript 函数和控制结构 实验目标: * 掌握 JavaScript 变量、表达式和运算符的使用 * 掌握 JavaScript 对话框的使用 * 掌握 JavaScript 函数的定义和调用 * 掌握 JavaScript 控制结构的使用 ...

    征服RIA:基于JavaScript的Web客户端开发卷二

    分三部分上传,此为卷二 内容简介  本书旨在向读者介绍以JavaScript为核心的RIA开发。  全书共分为5篇。JavaScript基础篇:介绍JavaScript的语法和基础应用。如果不打算深究JavaScript幕后机制的话,运用本篇的...

    Html+Css+Javascript从入门到精通.pdf

    - **特点与其他语言对比**:JavaScript的独特之处。 - **运行环境**:介绍JavaScript执行的环境。 - **简单示例**:编写第一个JavaScript程序。 **第十七章:JavaScript基本数据结构** - **代码嵌入方法**:将...

    JavaScript中的apply和call函数详解_.docx

    在JavaScript中,`apply`和`call`是两种非常重要的函数调用方式,它们都用于改变函数内部`this`的指向以及动态传递参数。这两者的主要区别在于参数的传递方式。 首先,`this`在JavaScript中是一个关键字,它在不同...

    跟我学习javascript的call(),apply(),bind()与回调

    本文将详细解释JavaScript中call(), apply(), 和 bind() 方法的作用、语法以及使用场景,并且会探讨回调函数的使用,帮助理解这些概念在实际编程中的应用。 首先,我们来探讨call() 和 apply() 方法。这两个方法都...

    web前端重点业务难点

    4. a 标签的 href 属性可以设置 JavaScript 代码,例如 `href="javascript:void(0)"`,这样可以避免页面跳转,同时也可以使用 JavaScript 函数进行处理。 5. form 表单中的提交按钮可以绑定 onclick 事件,通过 ...

    javascript与flex交互

    #### 三、Flex调用JavaScript方法 **1. Flex调用JavaScript方法** - **语法示例**: ```actionscript ExternalInterface.call("javascriptfunction", "param"); ``` - **解释**:这段代码表示通过Flex的`...

    Javascript - 全面理解 caller,callee,call,apply

    在JavaScript的世界里,caller、callee、call和apply是四个非常重要的概念,它们涉及到函数的调用方式和执行上下文。这些知识点对于深入理解和优化代码至关重要,尤其在处理高阶函数和面向对象编程时。 首先,让...

    编程实践:JavaScript进阶100例

    JavaScript,作为全球最广泛使用的脚本语言之一,是构建网页动态功能和交互性的基石。《编程实践:JavaScript进阶100例》是一份专为初级JavaScript学习者设计的资源,旨在通过丰富的实例帮助初学者深入理解这门语言...

Global site tag (gtag.js) - Google Analytics