前端的知识面太广了,想要记住所有知识点是不可能的,所以将这些学过的记录下来,随时都可以翻开来参考

  1.call方法

  调用一个对象的一个方法,call(this, arg1, arg2,argN);用来代替另一个对象调用一个方法,官方的解释有时候确实莫名其妙,还是上例子吧

 function add(a, b) {
alert(a + b);
}
function sub(a, b) {
alert(a - b);
}
7 add.call(sub, 3, 1) //add(3, 1)== 4

  从以上例子来看:输出结果为4,意味着运行了方法add(),add方法代替了sub方法;可是为什么不直接使用函数add()呢?这只是表明了call()的用法,实际开发中的例子肯定比这个复杂很多.

function Foo1 () {
this.name = 'foo1';
this.showName = function () {
alert(this.name)
}
} function Foo2 () {
this.name = 'foo2';
} var f1 = new Foo1();
var f2 = new Foo2(); f1.showName.call(f2);

  从以上例子来说:call把f1的方法放到f2来执行,原来f2中并没有方法showName(),使用call之后showName方法但是此时this.name中的this已经不属于f1的.所以返回结果相当于showName = function () { alert('foo2')} == foo2;

  另外:call还可以实现方法的继承

function Foo1 () {
this.show = function (text) {alert(text)}
}
function Foo2 () {
Foo1.call(this)
} var f2 = new Foo2()
f2.show('javascript') //javascript

  以上例子中的Foo2直接继承了Foo1的show方法,实例化Foo后f2也有了show方法,输出结果为'javascript'.

  

  2.apply方法

  aplly方法的使用和call大致相同,区别在于apply将后面的agr参数写成数组形式:

  f1.apply(f2, [agr1,agr2,agrN]);

  

JavaScript学习笔记之call和apply的更多相关文章

  1. Java程序猿的JavaScript学习笔记(3——this/call/apply)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  2. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  3. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  4. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  5. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  6. Java程序猿JavaScript学习笔记(14——扩大jQuery UI)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  7. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  8. JavaScript学习笔记[0]

    JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...

  9. Java程序猿的JavaScript学习笔记(1——理念)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

随机推荐

  1. React中ref的使用方法

    React中ref的使用方法 在react典型的数据流中,props传递是父子组件交互的唯一方式:通过传递一个新的props值来使子组件重新re-render,从而达到父子组件通信.当然,就像reac ...

  2. 2018中国大学生程序设计竞赛 - 网络选拔赛 Dream hdu6440 Dream 给出一个(流氓)构造法

    http://acm.hdu.edu.cn/showproblem.php?pid=6440 题意:让你重新定义任意一对数的乘法和加法结果(输出乘法口诀表和加法口诀表),使得m^p+n^p==(m+n ...

  3. TCP协议和TCP/IP(簇)

    TCP协议(传输层) 用于应用程序之间的通信. 连接的建立是经过三次握手,断开的时候四次挥手. TCP 包头很复杂,但是主要关注五个问题,顺序问题,丢包问题,连接维护,流量控制,拥塞控制 状态位例如: ...

  4. wap手机端实现上传图片流程

    实现图片上传使用了WeUI uploader插件 WeUI:是一套同微信原生视觉体验一致的基础样式库,为微信Web开发量身设计 流程:图片上传用到了FileReader,FormData,用这两个基本 ...

  5. jvisualvm All-in-One Java Troubleshooting Tool

    java 监控.故障.性能可视化分析 VisualVM: Download https://visualvm.github.io/download.html All-in-One Java Troub ...

  6. [Day1]常用Dos命令,Java相关描述及基础

    1.常用的DOS命令 (1)返回上一级目录:cd.. (2)返回盘符根目录:cd\ (3)切换当前盘符:   盘符: (4)进入文件夹:       cd 文件路径 (5)展示当前目录下的所有内容:D ...

  7. [daily] 像tcpdump一样监听unix domain socket

    如题. 见: https://superuser.com/questions/484671/can-i-monitor-a-local-unix-domain-socket-like-tcpdump? ...

  8. linux screen工具

    https://www.cnblogs.com/lpfuture/p/5786843.html 一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长 ...

  9. iptables及其在路由器上的应用 (待完善)

    1. iptables基本定义 Table (表名) Explanation (注释) nat nat表的主要用处是网络地址转换,即Network Address Translation,缩写为NAT ...

  10. shiro默认过滤器