call()方法
》》通过call(),我们可以使用属于另一个对象的方法

var person = {fullName :function(){return this .firstName + " " +this .lastName;}
}
var person1 = {firstName : "Bill",lastName : "Gates",
}var person2 = {firstName : "Steve",lastName : "Jobs",
}conslole.log(person.fullName.call( person1));    // Bill Gates   >>>>使对象person1使用对象person的fullName方法

》》call()方法接收参数

 var person = {fullName: function(city, country) {return this.firstName + " " + this.lastName + "," + city + "," + country;}
}
var person1 = {firstName:"Bill",lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA"); //  Bill Gates,Seattle,USA

》》在另一个方法中使用,下面的apply也可使用同样的方式,只是传递的参数不一样,如var student = new Student('小明', [21, '大三']);

function People(name, age) {this.name = name;this.age = age;
}function Student(name, age, grade) {People.call(this, name, age);  >>>>>使this(即Student方法)拥有People的方法this.grade = grade;
}var student = new Student('小明', 21, '大三');
console.log(student.name + student.age + student.grade);//小明21大三  

**********************************************
apply()方法和call() 方法的不同之处:call()方法分别接受参数,apply()方法接收数组形式的参数
**************************************************

apply() 方法  您能够编写用于不同对象的方法
》》person的fullName方法被应用到person1

var person = {fullName: function() {return this.firstName + " " + this.lastName;}
}
var person1 = {firstName: "Bill",lastName: "Gates",
}
person.fullName.apply(person1);  // 将返回 "Bill Gates"

》》带参数

var person = {fullName: function(city, country) {return this.firstName + " " + this.lastName + "," + city + "," + country;}
}
var person1 = {firstName:"John",lastName: "Doe"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);     //Bill Gates,Seatle,USA

》》在数组上模拟max方法,还有模拟min方法,如Math.min.apply(0,[1,2,3]),还有其他等等

Math.max(1,2,3); //返回3
//但是数组没有max方法,于是有了下面的例子,第一个参数无关紧要
Math.max.apply( null , [1,2,3] ); //返回3   >>>>>>>使null对象使用Math对象的max方法
Math.max.apply(Math, [1,2,3]); // 也会返回 3   >>>>>>>使Math对象使用Math对象的max方法
Math.max.apply(" ", [1,2,3]); // 也会返回 3
Math.max.apply(0, [1,2,3]); // 也会返回 3

js的call()和apply()方法的理解相关推荐

  1. 面试官问:能否模拟实现JS的call和apply方法

    写于2018年11月30日,发布在掘金上阅读量近一万,现在发布到微信公众号申明原创.相对比较基础的知识,虽然日常开发可能用得比较少,各种源码中有很多call和apply,需要掌握. 前言 这是面试官问 ...

  2. js中call()与apply()方法

    菜鸟级别的选手,学习+意会.欢迎指正 参考文章 http://uule.iteye.com/blog/1158829 http://blog.csdn.net/myhahaxiao/article/d ...

  3. javascript的call()方法与apply()方法的理解

    先看一段代码 function cat() {} cat.prototype={food:'fish',say:function () {console.log('I love '+this.food ...

  4. JS -- 对于JQuery中 append 方法的理解

    <div class="titleDiv">A</div> click事件{$(".titleDiv").append('<spa ...

  5. Js中apply方法详解说明

    Js apply 方法 详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了, ...

  6. Js apply 方法 详解

    Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...

  7. Js apply方法详解

    Js apply方法详解 主要解决一下几个问题: apply和call的区别在哪里 什么情况下用apply,什么情况下用call apply的其他巧妙用法(一般在什么情况下可以使用apply) 首先从 ...

  8. JS中的call()和apply()方法(转)

    转自:http://uule.iteye.com/blog/1158829 JS中的call()和apply()方法 博客分类: JS 1.方法定义 call方法:  语法:call([thisObj ...

  9. js中call()方法和apply方法的使用

    1. 方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ...

最新文章

  1. 反编译android的apk
  2. history linux 日志服务器_Linux下使用rsyslog部署日志服务器 记录history并发送到rsyslog服务器...
  3. 4 年 46 个版本,一文读懂 Spring Cloud 发展历史
  4. 字符串处理 —— 回文串相关 —— 添加/删除字符后是否为回文串
  5. struts2 标签单选框_Struts 2 UI标签–表单,复选框,单选,选择,提交
  6. 知网搜索论文:如何在知网上查找期刊论文
  7. 终极算法:机器学习和人工智能如何重塑世界笔记
  8. 深度学习技术在医疗领域的研究方向及应用
  9. Vue+TS Echarts股票图
  10. 安卓游戏《罗马帝国》游戏心得
  11. ipados远程linux软件,JingOS Linux平板系统v0.6下载发布 支持多点触摸手势
  12. QT-通用的软件界面框架,好看且实用
  13. 正则环视(零宽度断言)
  14. 在cmd 中输入了错误mysql命令后,如何退出?
  15. 杨振宁国科大演讲互动
  16. python将图片转换为抽象画
  17. IPC----pipe的使用
  18. 战队口号霸气押韵8字_班级口号29条
  19. 开源 串口调试助手 BaoYuanSerial 使用教程
  20. Android 过渡动画

热门文章

  1. 代码发芽网最近一次更新中所遇到的问题
  2. 2011管理类联考,拔尖和冒尖,ChatGPT的回答
  3. 《C语言参悟之旅》新鲜试读连载7
  4. java xml 实体类_java中的xml与实体类之间的映射
  5. 蓝牙耳机 已连接 但就是找不到[【掉落在某个角落找不到】解决方式
  6. java零钱换整程序_Java程序,告诉您从1美分到99美分的零钱要发...
  7. 那些有意思的网站彩蛋
  8. 计算路由器更新之后的路由表
  9. GAN 系列的探索与pytorch实现 (数字对抗样本生成)
  10. 影视中常见的黑人口语