`
jingwei.yang
  • 浏览: 3135 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

call和apply到底有啥用

阅读更多

     为什么有这两个函数呢?们到底可以做什么?


mozilla官方的文档让我看到了一点端倪:

1、call函数可以让你从已有的对象中继承一个方法,而不必为新对象写一个新的方法

With call, you can write a method once and then inherit it in another object, without having to rewrite the method for the new object.
文档中的例子说明了这一点:
function Product(name, value){
   this.name = name;
   if(value >= 1000)
      this.value = 999;
   else
      this.value = value;
}
 
function Prod_dept(name, value, dept){
   this.dept = dept;
   Product.call(this, name, value); //这里this对象调用Product方法,以帮助实现Prod_dept方法。
}
 
Prod_dept.prototype = new Product(); 

cheese = new Prod_dept("feta", 5, "food");

car = new Prod_dept("honda", 5000, "auto");
 今天我又看到了一个call的用途

2、明确指出函数调用的上下文。

没错,有时候在函数调用的过程中,转来转去常常会让this迷失方向,call和apply函数则可以明确指出此函数调用的this对象是谁。

        例子如下:

 

var first_object = {
num: 42
};
var second_object = {
num: 24
};

function multiply(mult) {
return this.num * mult;
}

multiply.call(first_object, 5); // 返回 42 * 5
multiply.call(second_object, 5); // 返回 24 * 5
分享到:
评论

相关推荐

    JavaScript中call与apply方法

    JavaScript中call与apply方法

    关于Javascript中call与apply的进一步探讨

    在某些情况下,`call`和`apply`可以互换使用,但它们也有各自独特的优势。`call`适合于参数数量已知且较少的情况,而`apply`则适用于参数数量不确定或者参数是一个数组的时候。 此外,`call`和`apply`还能用于函数...

    理解JavaScript的caller callee call apply

    ### 理解JavaScript中的`caller`...综上所述,理解`caller`、`callee`、`call`、`apply`以及`arguments`对象在JavaScript编程中至关重要,它们不仅增强了函数的灵活性和复用性,还提供了深入分析和调试代码的强大工具。

    07-call、apply、bind三者的异同.html

    07-call、apply、bind三者的异同

    call与apply区别 详细解读.pdf

    call和apply是JavaScript中的两个重要方法,它们都是Function.prototype中的方法,这意味着每个函数都可以使用这两个方法。它们的作用是改变函数体内的this对象的值,以扩充函数赖以运行的作用域。 相同点:call和...

    js中call与apply的用法小结

    在JavaScript中,`call` 和 `apply` 是两种非常重要的函数调用方式,它们都用于改变函数执行时的上下文,即`this`的指向。本文将深入探讨这两种方法的用法及其在实际编程中的应用。 ### 1. `call` 的基本用法 `...

    详解js中call与apply关键字的作用

    通过call和apply可以调用某个函数,并且显式地指定该函数内部的this变量的值。 ### call和apply的基本概念 call方法接受一个参数列表,而apply方法接受一个包含多个参数的数组。两者第一个参数都是要设置为函数...

    javascript中apply和call方法的作用及区别说明

    一、call和apply的说明 1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为...

    浅谈javascript中的call、apply、bind_.docx

    bind 方法是 ES5 新增的一个方法,它的传参和 call 类似,但又和 call/apply 有着显著的不同,即调用 call 或 apply 都会自动执行对应的函数,而 bind 不会执行对应的函数,只是返回了对函数的引用。 粗略一看,...

    javascript中call和apply方法浅谈

    在JavaScript中,`call`和`apply`是两种非常重要的函数调用方式,它们都用于改变函数内部`this`的指向,实现函数的动态绑定。这两个方法都是Function对象的原型方法,可以应用到任何函数上。 首先,让我们深入理解`...

    Js的call与apply1

    JavaScript中的`call`和`apply`是两种非常关键的方法,它们允许我们改变函数内部`this`的指向,同时也为实现模拟继承提供了可能。虽然JavaScript不直接支持类继承,但通过`call`和`apply`,我们可以实现类似的效果。...

    javascript callApply代码示例

    javascript callApply代码示例

    JS中的call、apply、bind方法详解.pdf

    1. call和apply的区别在于传递参数的方式,call方法需要一个一个传递参数,而apply方法则直接传递一个数组。 2. call和apply方法直接执行函数,而bind方法需要再次调用。 3. bind方法返回一个新的函数,而call和...

    详解js中call与apply关键字的作用.docx

    JavaScript中的`call`和`apply`是两种非常重要的方法,它们都用于改变函数内部`this`的指向,并执行该函数。这两个方法都是Function对象的原型方法,因此所有的函数都具备`call`和`apply`。 1. `call`方法: - `...

    Javascript - 全面理解 caller,callee,call,apply (转载)

    这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...

    JavaScript中call和apply方法的区别实例分析

    本文实例分析了JavaScript中call和apply方法的区别。分享给大家供大家参考,具体如下: 这两个方法不经常用,但是在某些特殊场合中是非常有用的,下面主要说下它们的区别: 1、首先,JavaScript是一门面向对象的语言...

    淡淡简单描述javascript中方法apply和call

    淡淡简单描述javascript中方法apply和call

    Javascript中call,apply,bind方法的详解与总结

    本文针对JavaScript中三个重要的函数方法——call、apply和bind,进行详尽的分析,并在文章的结尾部分对这三个方法之间的联系和区别进行了概括,以便于读者更深入地理解它们的用途和应用场景。 首先,我们来探讨...

    js中call,apply,setCapture,releaseCapture的使用.pdf

    JavaScript中的`call`和`apply`是两种函数调用的方式,它们主要用于改变函数内部的`this`指向。`call`方法允许你将一个函数绑定到指定的上下文(即`this`值)并立即调用,它接受一个或多个参数,参数列表直接跟在...

    JS中的call()和apply()方法的详解

    在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向 语法: apply() 接收两...

Global site tag (gtag.js) - Google Analytics