首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

callapply和bind区别

callapply和bind这三个方法经常使用,但是具体有什么区别呢? 首先这三个方法用法比较相似,但是作用,bind和前两者则完全不同。...callapply是调用函数,bind却是返回一个新函数。 下面看一下MDN对三者解释: call() 方法调用一个函数, 其具有一个指定this值和分别地提供参数(参数列表)。...callapply不同点只有一点,那就是向函数传递参数方式不同。call是逐个向函数传递参数,apply是通过将参数以数组形式传递到函数中。...下面总结了callapply一些常用地方。...callapply相同点和不同点说完了,下面看一看bind用法,前面一直重申函数调用bind后返回一个新函数。并不像callapply,直接调用函数。

70820
您找到你想要的搜索结果了吗?
是的
没有找到

applycall、bind函数区别

applycall、bind函数区别 一、前言 大多数人都知道,使用applycall、bind可以调用函数,并改变函数中this指向。 做一个简单记录,免得以后忘记了。...二、apply 使用:函数.apply(obj, arg[]) 参数: 第一个参数为函数中this指向对象 第二个参数是函数中原本参数,由数组进行封装 var user = {...、bind他们异同点 相同点:都可以改变函数中this指向,且都将作为第一个参数进行使用 不同点(传参方面) apply:在传入改变this对象之后,将原来函数参数,打包成一个数组进行传参...call:在传入改变this对象之后,依次传入原本函数参数 bind:由于特性,它传参分为一次参数和二次传参,一次传参与call相同;二次传参首次传参与call类似,后一次调用传参补全原函数剩余参数...不同点(调用方面) applycall:函数.apply()或者函数.call(),即可发起调用 bind:先返回一个改变指向函数,再通过这个函数进行调用 我是半月,祝你幸福!!!

31710

对于bind、callapply 区别

一、作用 callapply、bind作用是改变函数执行时上下文,简而言之就是改变函数运行时this指向 那么什么情况下需要改变this指向呢?...(obj),0); //martin,this指向obj对象 二、区别 下面再来看看applycall、bind使用 apply apply接受两个参数,第一个参数是this指向,第二个参数是函数接受参数...[1,2]); // this指向window call call方法第一个参数也是this指向,后面传入是一个参数列表 跟apply一样,改变this指向后原函数会立即执行,且此方法只是临时改变... ,bind不是立即执行需要执行一次 bindFn(1,2) // this指向obj fn(1,2) // this指向window 小结 从上面可以看到,applycall、bind三者区别在于...是数组,而call是参数列表,且applycall是一次性传入参数,而bind可以分为多次传入   ④ bind是返回绑定this之后函数,applycall 则是立即执行 三、实现 实现bind

25820

JavaScript中applycall、bind区别用法

语法: func.apply(thisArg, [argsArray]) 1.2 Function.prototype.call() call() 方法调用一个函数, 其具有一个指定this值和分别地提供参数...用法 这三个方法用法非常相似,将函数绑定到上下文中,即用来改变函数中this指向。 2.1 普通写法 ? 2.2 call apply方法用法 ?...结果相同,call()和apply(),第一个参数都是要绑定上下文,后面的参数是要传递给调用该方法函数。...bind方法callapply最大不同就是前者返回一个绑定上下文函数,而后两者是直接执行了函数。因此,以上代码也可以这样写: ?...(3).三者都可以传参,但是apply是数组,而call是有顺序传入。 (4).bind 是返回对应函数,便于稍后调用;applycall 则是立即执行 。 5.

1.1K20

callapply、bind应用和区别

1. call( ) 面试中常问Js中关于callapply、bind问题,比如: 怎么利用callapply来求一个数组中最大或者最小值 如何利用callapply来做继承 applycall...、bind区别和主要应用场景 首先,要明白这三个函数存在意义是什么?...区别 上面看起来三个函数作用差不多,干的事几乎是一样,那为什么要存在3个家伙呢,留一个不就可以。...所以其实他们干的事从本质上讲都是一样动态改变this上下文,但是多少还是有一些差别的.. ① callapplybind差别 callapply改变了函数this上下文后便执行该函数,而bind...② callapply区别 他们俩之间差别在于参数区别callapply第一个参数都是要改变上下文对象,而call从第二个参数开始以参数列表形式展现,apply则是把除了改变上下文对象参数放在一个数组里面作为它第二个参数

34750

JavaScript之apply()和call()区别

我 在一开始看到javascript函数applycall时,非常模糊,看也看不懂,最近在网上看到一些文章对apply方法和call一些示 例,总算是看有点眉目了,在这里我做如下笔记,希望和大家分享...如有什么不对或者说法不明确地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        applycall区别在哪里 2.        ...apply其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于applycall定义,然后用示例来解释这两个方法意思和如何去用.         ...)          call:和apply意思一样,只不过是参数列表不一样.  ...什么情况下用apply,什么情况下用call 在给对象参数情况下,如果参数形式是数组时候,比如apply示例里面传递了参数arguments,这个参数是数组类型,并且在调用 Person时候参数列表是对应一致

62170

callapply区别是什么

2015-07-12 15:02:21 一、方法定义 call方法: 语法:call(thisObj,Object) 定义:调用一个对象一个方法,以另一个对象替换当前对象。...说明: call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数对象上下文从初始上下文改变为由 thisObj 指定新对象。...apply方法: 语法:apply(thisObj,[argArray]) 定义:应用某一对象一个方法,用另一个对象替换当前对象。...window对象,其实myFun函数和定义var money = 100;都作为window对象子对象(即全局对象) myFun.apply(window,[]); //save to window.myFun.apply...//这个时候myFun方法里面的this指向是new Person('zhangsan',23)对象,二不是myFun类(函数),故弹出500 myFun.call(new Person('zhangsan

48120

js call()、apply()、bind()用法和区别

特性: fun.call(thisArg,arg1,arg2,…) 会立即调用fun函数; call 方法将一个函数对象上下文从初始上下文改变为由 thisArg 指定新对象,如果没有提供 thisArg...特性: fun.apply(thisArg,[arg1,arg2,…]) 会立即调用fun函数; apply方法将一个函数对象上下文从初始上下文改变为由 thisArg 指定新对象,如果没有提供...this函数 newFun(); // 3 4. call()、apply()和bind()应用 1. call() call 常用来继承,因为ES6之前没有extends,用构造函数来模拟继承。...() apply 常用于数组有关操作,因为传递参数是数组。...获取数组中最大值最小值: const arr = [1, 4, 7, -1]; Math.max.apply(Math, arr); // 7 Math.min.apply(Math, arr);

1.1K30

(七)call、bind、apply三者区别

一、call、bind、apply三者区别 三者都可以改变函数 this 对象指向。...bind 是返回绑定 this 之后函数,便于稍后调用;applycall 则是立即执行 。...apply 写了就等于直接调用函数 区别call 就是后面参数传入,其他都一样 food.apply(obj,[要传给函数参数1,要传给函数参数2...])...相同点 这三个都能够改变 this 指向 callapply 第一个参数都一样是要指向 this ,写他们就等于写了函数执行 call 和 bind 参数设置相同 不同点 call 和...apply 给函数传入参数设置不一样,call 直接逗号隔开就好,apply 需要用数组 bind 不会立即执行,callapply 都会立即执行 一文搞定this、applycall、bindopen

71420

callapply

首先个人感觉callapply还是挺神奇,简简单单就改变了this作用域,下面我们来共同学习一下 1.callapply语法(改变this作用域,有点像冒充感觉,例子如下) function.apply...); 了解: 调用call对象必须是个函数function call第一个参数将会是function改变上下文后指向对象, 第二个参数开始可以接收任意个参数...,这些参数将会作为function参数传入function 调用call方法会立即执行 function People(name,skill){ this.name=name;...(person ,"啄木鸟","捉虫子"); people1.paly(); person.paly() 代码基本没变,就是把apply替换成了call,作用相同,两者最大区别就是传递参数方式不同..., 通俗说 call传递参数是直接用双引号,然后一个接着一个传递 apply传递参数是通过一个数组形式传递

77330

apply()、call()、bind()

apply()、call()、bind() 每个Function对象都存在apply()、call()、bind()方法,其作用都是可以在特定作用域中调用函数,等于设置函数体内this对象值,以扩充函数赖以运行作用域...使用 apply()、call()、bind()都能改变函数对象this指向 window.name = "A"; //挂载到window对象name document.name = "B"; //...); //B //绑定document对象 rollCall.sayName.apply(s); //C //绑定自定义对象 // call rollCall.sayName.call(); //A...虽然apply()、call()、bind()都能够达到改变this指针目的,但是其使用还是有区别的 // applycall传参方式不同 window.name = "Teacher"; var...rollCall.sayAllName.call(window,"A","B","C"); // Teacher A B C // bind 仅将对象绑定,并不立即执行,其返回值是一个函数,传参方式

67720

区别和详解:js中call()和apply()用法

1、关于call()和apply()疑点: applycall区别在哪里 什么情况下用apply,什么情况下用call apply其他巧妙用法(一般在什么情况下可以使用apply) 2、语法和参数分析...: applycall都能继承另外一个对象方法和属性; Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组...,它将作为参数传给Function(args-->arguments) call:和apply意思一样,只不过是参数列表不一样....,这样就将属性创建到了student对象里面 4、 什么情况下用apply,什么情况下用call 使用apply情况:在给对象参数情况下,如果参数形式是数组时候,比如apply示例里面传递了参数...(Person.call(this,age,name,grade)); 5、apply一些其他巧妙用法 细心的人可能已经察觉到,在我调用apply方法时候,第一个参数是对象(this), 第二个参数是一个数组集合

63220

js中this指向问题及callapply,bind区别

js中this指向问题及callapply,bind区别# 1 this指向# 1.1 what is 'this'?...1.2 标准函数箭头函数this指向# this在标准函数箭头函数中时会有两种不同类型指向行为。...,apply,bind区别# 相同点: 都可以改变函数this指向 第一个参数为this将要指向对象,后续传参都是作为函数形参值 不同点: call后续传参是一个一个传,然后顺序对应;apply...后续传参是以数组形式,解析时候也是跟call一样顺序对应; callapply没有返回值,而bind改变完this指向后会返回一个改变完this指向之后原函数拷贝 可以再次进行调用。...例如: a.say.bind(b)('男', 'UNO') 运行结果如下: 3 小结# 关于this指向、callapply、bind记录本篇就总结到这里,在日常使用脚手架、组件开发时可能会用地方比较少

1.1K20
领券