前段时间在使用javascript的过程中遇到了继承的问题,自己顺便就对call()和apply()方法进行了了解。

两个方法的共同之处:这两个方法作用相同,都用来改变当前函数调用的对象,即改变this的指向。

两个方法的不同之处:不同之处就是两种方法的传参方式不同,apply接受的是数组参数,call接受的是连续参数。

apply()方法的定义:

Function.apply(obj,args);

obj:这个对象会代替Function类里边所指向的this对象。

args:这是一个数组,作为参数传递给Function。

示例:

<script>

  function Intro(name,age){
    this.name=name;
    this.age=age;
    this.speak=function(){
      console.log('My name is '+this.name+'.'+' I am '+this.age+' years old.');
    }
  }   function IntroInh(name,age){
    Intro.apply(this,arguments);
  }
  var lm=new IntroInh('LiMing',20);
  lm.speak(); </script>

上面的代码做了一个简单的继承应用,也展示了apply()在其中的作用。

call()方法的定义:

Function.call(obj,[param1[,param2[,…[,paramN]]]]);

obj:这个对象会代替Function类里边所指向的this对象。

params:这是一个参数列表。

示例:

<script>

  function Intro(name,age){
    this.name=name;
    this.age=age;
    this.speak=function(){
      console.log('My name is '+this.name+'.'+' I am '+this.age+' years old.');
    }
  }   function IntroInh(name,age){     // Intro.apply(this,arguments);
    Intro.call(this,name,age);//对比上面apply()的不同;   }
  var lm=new IntroInh('LiMing',20);
  lm.speak(); </script>

这里只做一个简单的概念和应用方法的叙述,具体的项目应用还需要我们进一步的实践。

关于javascript中call()和apply()方法的总结的更多相关文章

  1. JavaScript中call和apply方法的使用

    acvaScript中的call()方法和apply()方法,在某些时候这两个方法还确实是十分重要的.1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法.2. 相同点:这两 ...

  2. javascript中call和apply方法

    我们可以将call和apply看做是某个对象的方法,通过调用方法的形式来间接调用函数.call和apply的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对它的引用. 例 ...

  3. Javascript中call和apply

    在上一章http://www.cnblogs.com/meiyh/p/6207671.html 我有提到javascript很重要的this关键字,现在我们结合这个关键字使用的下面的两个关键字: ca ...

  4. JavaScript中this的使用方法总结

    JavaScript中this的使用方法总结 在JavaScript中,this的使用分为四种场景,具体请参考阮一峰老师关于this的讲解 第一种情况是纯函数使用 var x =1 ; functio ...

  5. 面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗

    一.前言    不知道大家还记不记得前几篇的文章:<面试官:能解释一下javascript中的this吗> 那今天这篇文章虽然是介绍javascript中bind.apply和call函数 ...

  6. 说说 JavaScript中 call和apply

    下面有关JavaScript中 call和apply的描述,错误的是? call与apply都属于Function.prototype的一个方法,所以每个function实例都有call.apply属 ...

  7. Jquery中$(document).ready()与传统JavaScript中的window.onload方法的区别(2016/8/3)

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间       ...

  8. JavaScript中事件绑定的方法总结

    最近收集了一些关于JavaScript绑定事件的方法,汇总了一下,不全面,但是,希望便于以后自己查看. JavaScript中绑定事件的方法主要有三种: 1 在DOM元素中直接绑定 2 JavaScr ...

  9. Javascript中alert</script>的方法

    Javascript中alert</script>的方法: <%@ page language="java" import="java.util.*&q ...

随机推荐

  1. Web开发须知的浏览器内幕 缓存与存储篇(2)

    本文禁止转载,由UC浏览器内部出品. 3. HTTP Cache 综述 HTTP Cache是完全按照IETF规范实现的,最新的RFC规范地址是 https://tools.ietf.org/html ...

  2. Android 图片旋转

    拍照后的照片有时被系统旋转,纠正步骤如下: 1.先读取图片文件被旋转的角度: /** * 通过ExifInterface类读取图片文件的被旋转角度 * @param path : 图片文件的路径 * ...

  3. IOS xcode安装

    xcode软件下载地址: 可以通过虚拟机共享文件夹将xcode传递给虚拟机上的os系统: 第一个程序创建:

  4. matplotlib.pyplot 导引

    matplotlib.pyplot 是采用 python 语言和使用数值数学库 numpy 数组数据的绘图库.其主要目标是用于数据的可视化显示. 输出图形组成 matplotlib.pyplot 模块 ...

  5. Oracle PL/SQL Dev工具(破解版)被植入勒索病毒的安全预警及自查通告

    [问题描述] 近日,有项目组遇到了勒索软件攻击:勒索代码隐藏在Oracle PL/SQL Dev软件中(网上下载的破解版),里面的一个文件afterconnet.sql被黑客注入了病毒代码.这个代码会 ...

  6. SCOM发送邮件通知

    运行方式配置:1. 新建账户--Windows域账户,安全级别较高,将其分发到SCOM管理服务器2. 配置文件--通知账户--将上一步新建的账户添加到该配置文件中的 运行方式账户,管理 所有目标对象 ...

  7. Linux入门-6 Linux网络基本配置

    1. 网络基础知识 网络编址 IP编址 子网掩码 同一网络主机之间通信--MAC地址 不同网络之间的通信 路由 域名 DNS 基本网络参数 2. Linux网络基础配置 以太网连接 配置网络信息 网络 ...

  8. WINDOW各种命令

  9. Tuple元组 、 ValueTuple 值元组详解

    Tuple元组 Tuple是C# 4.0时出的新特性,.Net Framework 4.0以上版本可用. 元组是一种数据结构,具有特定数量和元素序列,与数组不同,元祖中的元素可以不同的数据类型.比如设 ...

  10. Echarts 嵌套饼图实现,内环点击控制外环显示

    Echarts有交互事件,但是如果用其进行图形变更,恐怕就只有重新修改配置了. 如图,我想要实现,内圈的数据控制外圈的图形,当点击内环的某一块时,就可以实现,更改外环的目的. 起初我想能不能直接修改o ...