前段时间在使用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. Maven-pom-configuration

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. Python爬虫教程-07-post介绍(百度翻译)(上)

    Python爬虫教程-07-post介绍(百度翻译)(上) 访问网络两种方法 get: 利用参数给服务器传递信息 参数为dict,使用parse编码 post :(今天给大家介绍的post) 一般向服 ...

  3. 三、angularjs上传图片

    上传图片需要引入插件ngFileUpload,使用bower安装方法: bower install ng-file-upload --save,安装后需要在命名app的名字js文件中注入,如下所示: ...

  4. spring+quarts常见问题

    javax/transaction/UserTransactionCaused by: java.lang.NoClassDefFoundError: javax/transaction/UserTr ...

  5. android 实现微信分享多张图片的功能

    昨天公司老大通知客户改需求了,原来的微信分享改成分享多张图片,然后屁颠屁颠跑到微信平台看了以后 心里千万只草泥马狂奔而过,微信平台没有提供分享多张的SDK有木有啊,我们只能自己调用系统自带的分享功能实 ...

  6. js中问号

    是三目运算,如:(a==b)?a:b 也就是说,先判断a是否等于b,如果是(true),那么返回a,如果否(false),则返回b greeting=(visitor=="PRES" ...

  7. Python学习---range/for/break/continue简单使用

    range的使用:注意,在python3中,交互模式下已经不显示了 for循环的使用 打印50-70 # 第一种方案 for i in range(100): if i <= 70 and i ...

  8. Linux watch命令详解

    watch可以帮你监测一个命令的运行结果,来监测你想要的一切命令的结果变化 常见命令参数 Usage: watch [-dhntv] [--differences[=cumulative]] [--h ...

  9. Linux 系统安装[Redhat]

    系统下载 Linux操作系统各版本ISO镜像下载 系统安装 1.1. 分区知识 1.2. 磁盘分区命名以及编号 IDE盘:  hda  第一块盘 hda1/第一块盘的第一个分区 hdb  第二块盘 h ...

  10. Exchange2016 & Skype for business 集成之三统一联系人存储

    Exchange2016&Skype for business集成之二统一联系人存储 利用统一的联系人存储库,用户可以维护单个联系人列表,然后使这些联系人适用于多个应用程序,包括 Skype ...