js中的call,apply主要是来实现类似java中的继承等方案。
call的调用方式:
obj.call(thisObj,arg1, arg2,...);
调用说明:
该方式的作用是将 obj(即this)绑定到thisObj, 使thisObj具备了obj的属性和方法;并立即执行函数。
如:
function add(a, b) { return a + b;}
function sub( a, b) { return a - b;}
add.call(sub, 5, 3); //让sub增加add方法同时立即执行add方法,结果: 8
apply的调用方式:
obj.apply(thisObj, [arg1, arg2,..]);
调用说明:
该方式的作用与call一样,只是参数变成数组对象,接收的是数组。
## call、apply调用原生对象的方法
var a = {0: 1, 1: "youngstream", length: 2};
a.slice(); //会报错,因为slice未定义
Array.prototype.slice.call(a); //会得到[1, "youngstream"],就是让a对象具备了Array的slice方法的能力
call、apply还可以用于继承的实现,具体方案类似上面代码!
参考博客: http://www.cnblogs.com/52fhy/p/5118877.html
分享到:
相关推荐
JavaScript中call与apply方法
在JavaScript中,`call`和`apply`是两个非常重要的方法,它们都用于改变函数调用时的上下文(即`this`的值),并且可以灵活地传递参数。本篇文章将深入探讨这两个方法的用法、区别以及实际应用场景。 `call`方法...
淡淡简单描述javascript中方法apply和call
javascript callApply代码示例
在JavaScript中,`call` 和 `apply` 是两种非常重要的函数调用方式,它们都用于改变函数执行时的上下文,即`this`的指向。本文将深入探讨这两种方法的用法及其在实际编程中的应用。 ### 1. `call` 的基本用法 `...
在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向 语法: apply() 接收两...
### 理解JavaScript中的`caller`, `callee`, `call`, `apply` #### Arguments对象:JavaScript函数调用的参数管理器 在JavaScript中,每个函数都有一个隐含参数`arguments`,它允许开发者访问传递给函数的所有参数...
JavaScript中的`call`和`apply`是两种非常关键的方法,它们允许我们改变函数内部`this`的指向,同时也为实现模拟继承提供了可能。虽然JavaScript不直接支持类继承,但通过`call`和`apply`,我们可以实现类似的效果。...
### JavaScript中的apply与call用法详解 #### 一、引言 在JavaScript中,`apply...以上就是关于JavaScript中`apply`与`call`的详细解析,希望能对您的学习有所帮助。如果您还有其他疑问或需要进一步了解,请随时提出。
综上所述,掌握 call(), apply(), 和 bind() 方法以及回调函数的使用,对于学习和实践JavaScript编程至关重要。无论是改变函数的执行上下文,还是创建特定的函数实例,亦或是处理异步事件,这些概念都能提供强大的...
在JavaScript编程中,`generator`、`apply`、`call`和`bind`是四个非常重要的概念,它们各自扮演着不同的角色,对于理解和编写高效、灵活的代码至关重要。接下来,我们将详细探讨这些知识点。 首先,`generator`是...
JavaScript中的this、new、apply和call是理解JavaScript面向对象编程的关键知识点。首先,我们要知道,this关键字在JavaScript中表示当前上下文的对象,但它并不像Java中的this那样始终指向同一个对象。JavaScript的...
在JavaScript中,`apply()`, `call()`, 和 `bind()` 都是用来操作函数的上下文,即改变函数内部 `this` 指向的方法。它们有三个共同点:第一,它们都能改变函数执行时的 `this` 值;第二,第一个参数都是指定的新 `...
在JavaScript中,实现对象继承主要有三种方式:原型链继承(prototype)、构造函数继承和call/apply继承。下面将分别详细介绍这三种继承方式的具体用法和实现原理。 1. 原型链继承(prototype) 原型链继承是...
JavaScript中的`call`和`apply`是两种非常重要的方法,它们都用于改变函数内部`this`的指向,并执行该函数。这两个方法都是Function对象的原型方法,因此所有的函数都具备`call`和`apply`。 1. `call`方法: - `...
这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...
本文针对JavaScript中三个重要的函数方法——call、apply和bind,进行详尽的分析,并在文章的结尾部分对这三个方法之间的联系和区别进行了概括,以便于读者更深入地理解它们的用途和应用场景。 首先,我们来探讨...
在JavaScript中,`call`和`apply`是两个非常重要的函数,它们都允许开发者改变函数执行时的上下文,即`this`的指向。这两个方法主要用于实现函数的绑定和继承,以及处理数组或类数组对象。 首先,我们来看`call`的...
### JavaScript中apply、call和bind的用法区分 在JavaScript编程中,`apply`、`call`和`bind`这三个方法被广泛用于改变函数内部`this`的指向,这对于理解和编写复杂的JavaScript代码至关重要。虽然它们的功能相似,...
1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用...