`

apply(),call(),bin()方法

阅读更多

apply()和call()方法

apply()应用某一对象的一个方法,用另一个对象替换当前对象。 

fun.apply(thisAry[,argsArray])

thisAry 在函数运行时指定的this 

argsArray 指一个数组或者类数组对象,其中的数组元素将作为单独的参数传给fun函数

call()调用一个对象的一个方法,以另一个对象替换当前对象

fun.call(thisArg[,arg1[,arg2[,...]]]),

thisAry 在函数运行时指定的this 

arg1,arg2,...指的是参数列表

apply()和call()相同点:他们的用途是相同的都是在特定的作用域中调用函数

不同点是:它们接受的参数方面是不同的

apply()接受两个参数,一个是函数运行接受的作用域this,另一个是参数数组

call()一个参数与apply()相同,但传递给函数的参数必须列举出来

function sum(num1, num2) {
    return num1 + num2;
}

function callSum1(num1, num2) {
    return sum.apply(this, arguments);  //传入arguments对象
}

function callSum2(num1, num2) {
    return sum.apply(this, [num1, num2]);
}
console.log((callSum1(10, 10)));  //20
console.log((callSum2(10, 10)));  //20
// arguments 是一个函数的局部变量。 它可以被用作被调用对象的所有未指定的参数。 使用apply函数的时候就不需要知道被调用对象的所有参数
可以使用arguments来把所有的参数传递给被调用对象。 被调用对象接下来就负责处理这些参数。

 bind()创建一个新函数,当这个数被调用时,bin()的第一个参数将作为它运行时的this,之后的一序列参数将会在传递的实参前传入作为它的参数

function foo(y){console.log( this.x+y)}
var m={x:1};     //要绑定的对象
var g=foo.bind(m);  //通过调用g(x)来调用m.foo(x)
g(2)
//3

 

 

 

分享到:
评论

相关推荐

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

    1.call/apply/bind方法的来源 2.Function.prototype.call() 3.Function.prototype.apply()  3.1:找出数组中的最大数  3.2:将数组的空元素变为undefined  3.3:转换类似数组的对象 4.Function.prototype.bind() ...

    javascript中apply、call和bind的使用区别

    在JavaScript中,`apply()`, `call()`, 和 `bind()` 都是用来操作函数的上下文,即改变函数内部 `this` 指向的方法。它们有三个共同点:第一,它们都能改变函数执行时的 `this` 值;第二,第一个参数都是指定的新 `...

    javascript中call apply 与 bind方法详解

    在JavaScript中,call、apply和bind是Function对象自带的三个方法,本文将通过几个场景的应用,来详细理解三个方法。 call() call() 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法。 ...

    原生JS实现 call apply bind

    都是用来改变this的指向,在平时工作过程中,除了实现对象的继承,在写一些基础类,或者公用库方法的时候会用到它们,其他时候 call 和 apply 的应用场景并不多。 在React中bind常用来绑定事件,改变this的指向 call...

    全面解析JavaScript中apply和call以及bind(推荐)

    •通过它们的call()和apply()方法间接调用 前面的三种调用方法,我们都知道且不在这篇文章的讨论范围内,就不说了。 下面我们来说说这第四种调用方法 通过call()和apply()间接调用 其实,我们可以将这两个函数...

    深入理解JavaScript中的call、apply、bind方法的区别

    JavaScript中的call、apply和bind方法都是用来改变函数体内`this`指向的重要工具。它们的核心区别在于参数传递方式和即时执行性。 1. **call方法**: - `call`允许你将一个函数作为另一个对象的方法来调用,同时...

    this指向 箭头函数中的this call、apply和bind方法的用法以及区别

    thisthis 指向看看箭头函数的案例call、apply和bind方法的用法以及区别来几个面试题试试 this 指向 1.普通函数的this:指向它的调用者,如果没有调用者则默认指向window. 2.箭头函数的this: 指向箭头函数定义时所处...

    实例讲解JavaScript中call、apply、bind方法的异同

    以实例切入,讲解JavaScript中call,apply,bind方法,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> [removed] ...

    跟我学习javascript的call(),apply(),bind()与回调

    总结来说,`call()`, `apply()`, 和 `bind()`是JavaScript中控制`this`值和函数调用的关键工具,它们帮助开发者在不同的上下文中灵活地调用函数,特别是在处理对象方法、事件处理和异步操作时。理解并熟练掌握这些...

    JavaScript必知必会(十) call apply bind的用法说明

     每个func 都会继承call apply等方法。 function print(mesage) { console.log(mesage); return mesage; } print.call(this, "cnblogs");//cnblogs  call(thisAgr,agr1,agr2…) ,call方法第一个传递一个context...

    关于JS中的apply,call,bind的深入解析

    使用apply,call 与 bind 均可以改变函数对象中this的指向,在说区别之前还是先总结一下三者的相似之处: 1、都是用来改变函数的this对象的指向的。 2、第一个参数都是this要指向的对象。 3、都可以利用后续参数传参...

    浅谈javascript中call()、apply()、bind()的用法

    call(thisObj,arg1,arg2…)、apply(thisObj,[obj1,obj2…])这二个方法是每个函数都包含的非继承的方法 call(thisobj[, args])和apply(thisobj[, args]) 作用都是一样的,简单来说就是改变当前使用该方法的对象...

    浅谈javascript中的call、apply、bind

    在JavaScript中,`call`、`apply`和`bind`都是与函数操作紧密相关的三个方法,它们都属于Function对象的内置方法,主要功能是改变函数内部`this`的指向,从而实现灵活的功能调用和控制。`this`在JavaScript中通常指...

    javascript中call,apply,bind函数用法示例

    本文实例讲述了javascript中call,apply,bind函数用法。分享给大家供大家参考,具体如下: 一.call函数 a.call(b); 简单的理解:把a对象的方法应用到b对象上(a里如果有this,会指向b) call()的用法:用在函数上面 ...

    js apply/call/caller/callee/bind使用方法与区别分析

    一、call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容)。 Js代码 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项。将被用作...

    javascript中apply/call和bind的使用

    fun.apply(context,[argsArray]) 立即调用fun,同时将fun函数...同apply,只是参数列表不同,call的参数需要分开一个一个传入。如果不知道参数个数,则使用apply。 使用: Math.max()只接收单独的参数,通过下面的方法

    Javascript中apply、call、bind的巧妙使用

    apply、call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。 JavaScript 的一大特点是,函数存在「定义时上下文」和「...

    浅谈JavaScript中的apply/call/bind和this的使用

    fun.apply(context,[argsArray]) 立即调用fun,同时将fun函数原来的...同apply,只是参数列表不同,call的参数需要分开一个一个传入。如果不知道参数个数,则使用apply。 使用: Math.max() //只接收单独的参数,通

    JavaScript中的this/call/apply/bind

    - 使用`call()`、`apply()`或`bind()`方法时,可以显式地指定`this`的值。 3. **绑定this的方法** - `call()`: 允许你指定函数的`this`值,并以数组或可迭代对象的形式传入参数。 - `apply()`: 类似于`call()`,...

    JS中改变this指向的方法(call和apply、bind)

    1.call用作继承时: function Parent(age){ this.name=['mike','jack','smith']; this.age=age; } function Child(age){ Parent.call(this,age);//把this指向Parent,同时还可以传递参数 } var test=new Child(21

Global site tag (gtag.js) - Google Analytics