介绍call和apply

function add(a, b) {
alert(a + b);
}

function sub(a, b) {
alert(a - b);
}

add.call(sub, 1,3); //4  传递值

add.apply(sub,[1,3]); //4  传递数组
/*
call和apply的作用就是切换函数的对象上下文,
是将add执行的上下文由window切换为sub,即this指向是从window变为sub,仅此而已,并非add替换sub。这个例子很难说明什么。
*/

时间: 2024-10-13 00:42:54

介绍call和apply的相关文章

javascript apply,prototype,this,argument

一.apply介绍 1.apply是前端javascript方法默认自带的方法,这要的用法是替换掉当前执行的方法的this对象,从而实现继承,或者修改方法内部使用到this对象: 这次先说继承: 例如: 首先,在test方法里边声明两个方法,add,sub: function test(){ this.add=function(a,b){ return a+b; } this.sub=function(a,b){ return a-b; } } 然后,我们接着定义一个方法test2: funct

创建对象的方式以及call,apply,bind的区别

创建对象的方式有四种 1.直接量 var obj={ 属性名:属性 方法名:function(){} } 2.通过构造函数创建对象,这样能够批量创建多个具有相同属性的子对象(顺便介绍call,apply,bind三个关键字的区别应用) function person(name,age){ this.name=name; this.age=age; } 或者function person2(name,age){ this.name=argument[0]; this.age=argument[1]

javascript之 this 关键字详解

不管学习什么知识,习惯于把自己所学习的知识列成一个list,会有助于我们理清思路,是一个很好的学习方法.强烈推荐. 以下篇幅有点长,希望读者耐心阅读. 以下内容会分为如下部分: 1.涵义 1.1:this涵义 1.2:this指向的可变性 2.使用场合 2.1:全局环境 2.2:构造函数 2.3:对象的方法 3.使用注意点 3.1:避免多层嵌套this 3.2:避免数组处理方法中的this 3.3:避免回调函数中的this 1.涵义 1.1:this涵义 在我写的一篇关于 构造函数与new关键字

再谈this

不管学习什么知识,习惯于把自己所学习的知识列成一个list,会有助于我们理清思路,是一个很好的学习方法.强烈推荐. 以下篇幅有点长,希望读者耐心阅读. 以下内容会分为如下部分: 1.涵义 1.1:this涵义 1.2:this指向的可变性 2.使用场合 2.1:全局环境 2.2:构造函数 2.3:对象的方法 3.使用注意点 3.1:避免多层嵌套this 3.2:避免数组处理方法中的this 3.3:避免回调函数中的this 1.涵义 1.1:this涵义 在我写的一篇关于 构造函数与new关键字

Coursera-Getting and Cleaning Data-Week3-dplyr+tidyr+lubridate的组合拳

Coursera-Getting and Cleaning Data-Week3 Wednesday, February 04, 2015 好久不写笔记了,年底略忙.. Getting and Cleaning Data第三周其实没什么好说的,一个quiz,一个project,加一个swirl. 基本上swirl已经把第三周的内容都概括进去了.就是dplyr, tidyr以及lubridate包的学习和使用.其中dplyr专注于选择/筛选,tidyr关注于数据重塑型,二lubridate是我目前

R与并行计算(转)

文章摘要 本文首先介绍了并行计算的基本概念,然后简要阐述了R和并行计算的关系.之后作者从R用户的使用角度讨论了隐式和显示两种并行计算模式,并给出了相应的案例.隐式并行计算模式不仅提供了简单清晰的使用方法,而且很好的隐藏了并行计算的实现细节.因此用户可以专注于问题本身.显示并行计算模式则更加灵活多样,用户可以按照自己的实际问题来选择数据分解,内存管理和计算任务分配的方式.最后,作者探讨了现阶段R并行化的挑战以及未来的发展. R与并行计算 统计之都的小伙伴们对R,SAS,SPSS, MATLAB之类

Effective JavaScript Item 22 使用arguments来创建接受可变参数列表的函数

本系列作为Effective JavaScript的读书笔记. 在Item 21中,介绍了结合apply方法实现的可变参数列表函数average,它实际上只声明了一个数组作为参数,但是利用apply方法,实际上可以接受若干元素作为参数: function averageOfArray(a) { for (var i = 0, sum = 0, n = a.length; i < n; i++) { sum += a[i]; } return sum / n; } averageOfArray.a

开发,从未如此清晰

关于开发,我们已经有了太多的方法论和工具,这之间其实很难说哪个方法论是正确的,哪个工具是最好用的:其实开发是“任性的”,它没有定律,如人饮水冷暖自知,其过程是否高效,除了团队的内功实力这个决定性因素之外,还取决于整个流程是否是清晰的.高效总是伴随着清晰而来,清晰的目标,清晰的计划,清晰的职责……而这也是Worktile采用看板的原因,直观可视的结构将原本错综复杂的流程变得清晰:而高度模块化的特性,又可以让一个个项目不再僵化,变成可以流动拼接的系统. 我们下面就以Worktile本身的开发作为例要

Cpython解释器下实现并发编程——多进程、多线程、协程、IO模型

一.背景知识 进程即正在执行的一个过程.进程是对正在运行的程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念展开的.   一.操作系统相关的知识 详情见链接:http://www.cnblogs.com/linhaifeng/p/6295875.html 即使可以利用的CPU只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力.将一个单独的CPU变成多个虚拟的CPU(多道技术:时