`
Rainbow702
  • 浏览: 1078544 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类

javascript 中 apply 方法的使用

阅读更多

在看 backbone 的 todos 例子时,有一行代码,如下:

 

this.without.apply(this, this.done());

 

一开始怎么也不理解这句话的含义。后来看了一些网上的解释,还是半懂不懂的。今天再次看到它的时候,把JAVA里的反射跟它联系了一下,感觉有点像,然后,再回过头去看看网上的那些解释,感觉有点懂了。

如果把上面一句写成下面这个样子的话,可能更好理解一些:

 

this.without(this.done())

 

其中,第一个this就相当于上面apply函数中的第一个参数。

 

有人可能会问,既然可以写成下面这个样子,那为什么还要写成上面那个?请看下面这行代码:

 

ClassA.without.apply(ClassB, ClassB.done());

 

这下看明白了吧,without 这个方法可能是定义在别的类中的,所以无法通过  ClassB.without()来引用。

分享到:
评论

相关推荐

    JavaScript中call与apply方法

    JavaScript中call与apply方法

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

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

    JavaScript中this关键字使用方法详解

    在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...

    深化理解关于javascript中apply()和call()方法的区分_.docx

    在JavaScript中,`apply()`和`call()`方法都是用于改变函数调用时的上下文(即`this`关键字指向的对象)以及传递参数。这两个方法都隶属于`Function.prototype`,因此所有函数实例都拥有这两个方法。它们的主要作用...

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

    在JavaScript中,`call`和`apply`是两个非常重要的方法,它们都用于改变函数调用时的上下文(即`this`的值),并且可以灵活地传递参数。本篇文章将深入探讨这两个方法的用法、区别以及实际应用场景。 `call`方法...

    javascript callApply代码示例

    javascript callApply代码示例

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

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

    javascript中apply、call和bind的用法区分_.docx

    在JavaScript编程中,`apply`、`call`和`bind`这三个方法被广泛用于改变函数内部`this`的指向,这对于理解和编写复杂的JavaScript代码至关重要。虽然它们的功能相似,但在具体用法上存在一定的差异。 #### 相同之处...

    js中apply方法的使用详细解析.docx

    JavaScript中的`apply`方法是`Function.prototype`的一个内置方法,用于改变函数调用时的上下文(即`this`的指向)以及将参数以数组的形式传递给函数。这个方法对于理解和实现面向对象编程中的继承机制、处理数组...

    javascript利用apply和arguments复用方法

    `apply`是JavaScript中Function对象的一个方法,它可以改变函数调用的上下文(即`this`的值)并接收一个数组或者类数组对象作为参数。语法如下: ```javascript function.apply(thisArg, [argsArray]) ``` - `...

    JavaScript中apply方法的应用技巧小结

    在JavaScript中,`apply`方法是函数对象的一个内置属性,它允许我们改变函数调用时的上下文(即`this`的值)以及传递参数的方式。`apply`接收两个参数:第一个参数是希望作为`this`值的对象,第二个参数是一个数组或...

    apply应用小结

    4. 实战应用:可能包含了一些实际项目中使用`apply()`解决特定问题的例子,如函数组合、事件处理等。 标签中的“源码”可能意味着文章深入探讨了`apply()`在某些开源库或框架源码中的应用,帮助读者理解其内部工作...

    使用apply方法实现javascript中的对象继承

    尽管在现代JavaScript中更推崇使用ES6的class关键字和extends语法来实现继承,但理解apply方法在继承中的作用仍然很重要,因为它有助于深入理解JavaScript原型链的工作原理以及原型继承的本质。

    JavaScript中的call方法和apply方法使用对比

    2. 多重继承:通过使用多次call,可以在子类中继承多个父类的属性和方法,例如`Class2`的构造函数中使用了两个call调用,实现了多重继承。 3. 函数借用:一个对象可以借用另一个对象的方法。如第一个示例中,`add`...

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

    其实,ES5 引入 bind 的真正目的是为了弥补 call/apply 的不足,由于 call/apply 会对目标函数自动执行,从而导致它无法在大事绑定函数中使用,而 bind 在实现转变函数 this 的同时又不会执行对应的函数。...

    javascript中call和apply方法浅谈

    在JavaScript中,`call`和`apply`是两种非常重要的函数调用方式,它们都用于改变函数内部`this`的指向,实现函数的...在实际开发中,理解和熟练掌握`call`和`apply`方法对于编写高效、灵活的JavaScript代码至关重要。

    开启Javascript中apply、call、bind的用法之旅模式

    总结来说,apply、call和bind是JavaScript中非常重要的函数方法,它们提供了控制函数上下文的能力,无论是直接调用函数、扩展数组元素,还是改变对象的方法调用,这些方法都是不可或缺的工具。掌握它们的用法,能够...

    JavaScript中的apply和call函数详解_.docx

    在JavaScript中,`apply`和`call`是两种非常重要的函数调用方式,它们都用于改变函数内部`this`的指向以及动态传递参数。这两者的主要区别在于参数的传递方式。 首先,`this`在JavaScript中是一个关键字,它在不同...

    从JQuery源码分析JavaScript函数的apply方法与call方法

    JQuery源码分析与JavaScript中的apply与call方法是JavaScript编程中非常重要的概念,这两者都是函数对象的方法,用于在特定的作用域中执行函数,并可以指定函数体内this的指向。从JQuery源码中分析apply和call方法,...

Global site tag (gtag.js) - Google Analytics