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

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

1. call() 语法: fun.call(thisArg,arg1,arg2,…) fun: 表示一个函数 thisArg: this要指向对象,如果是null undefined,则指向window...,如果是null undefined,则指向window全局对象; 参数是一个数组。...() 语法: fun.bind(thisArg,[arg1,arg2,…]) fun: 表示一个函数 thisArg: this要指向对象,如果是null undefined,则指向window全局对象...特性: fun.bind(thisArg,arg1,arg2,…) 不会立即调用fun函数,会返回一个新指定了this函数; bind方法将一个函数对象上下文从初始上下文改变为由 thisArg...(obj, 1, 2); // 返回是一个新指定了this函数 newFun(); // 3 4. call()、apply()bind()应用 1. call() call 常用来继承,因为

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

call、apply、bind应用区别

1. call( ) 面试中常问Js中关于call、apply、bind问题,比如: 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply、call...、bind区别主要应用场景 首先,要明白这三个函数存在意义是什么?...改变为我们要想要结果,并且把对应参数值准备好,以后要用到了,直接执行即可,也就是说bind同样可以改变this指向,但apply、call不同就是不会马上执行(如上一个例子) 注意:bind...所以其实他们干的事从本质上讲都是一样动态改变this上下文,但是多少还是有一些差别的.. ① call、apply与bind差别 callapply改变了函数this上下文后便执行该函数,而bind...② call、apply区别 他们俩之间差别在于参数区别,callapply第一个参数都是要改变上下文对象,而call从第二个参数开始以参数列表形式展现,apply则是把除了改变上下文对象参数放在一个数组里面作为它第二个参数

34950

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

js中this指向问题及call,apply,bind区别# 1 this指向# 1.1 what is 'this'?...# 在 ECMAScript 5 中,函数内部存在两个特殊对象:arguments(一个类数组对象,包含调用函数时传入所有参数) this(本文将要讲)。...: fun } obj.sayObj() // 3.当使用new关键字调用,这个时候最靠近this是new关键字实例化出来对象,所以下面这两句话this指向分别是creatPerson1对象creatPerson2...区别# 相同点: 都可以改变函数this指向 第一个参数为this将要指向对象,后续传参都是作为函数形参值 不同点: call后续传参是一个一个传,然后顺序对应;apply后续传参是以数组形式...可以向cally一样传参,例如: a.say.bind(b, '男', 'UNO')() // 但由于bind返回仍然是一个函数,所以我们还可以在函数调用时候再进行传参。

1.1K20

小程序事件之bind 、catch 、capture-bindcapture-catch区别

小程序事件之bind 、catch 、capture-bindcapture-catch区别 事件分类 事件分为冒泡事件非冒泡事件 冒泡事件:当一个组件上事件被触发后,该事件会向父节点传递。...非冒泡事件:当一个组件上事件被触发后,该事件不会向父节点传递。...事件绑定: bindcatch都是用来绑定事件,与 bind 不同, catch 会阻止事件向上冒泡 outer...事件是有两个阶段:捕获阶段 冒泡阶段, 且捕获阶段位于冒泡阶段之前。 \2. 在捕获阶段中,事件到达节点顺序与冒泡阶段恰好相反 \3....在捕获阶段监听事件时,可以采用capture-bind、capture-catch关键字,后者将中断捕获阶段取消冒泡阶段 示例: 点击 inner view 会先后调用handleTap2、handleTap4

60320

说下jsbind

bind受体是对象,返回是个新函数。 我们知道this总是指向调用他对象。但是有时候我们希望‘固化’这个this。 也就是无论怎么调用这个返回函数都有同样this值。...这就是bind作用。 语法 fun.bind(thisArg[, arg1[, arg2[, ...]]]) 参数 thisArg 当绑定函数被调用时,该参数会作为原函数运行时 this 指向。...this将永久地被绑定到了bind第一个参数,无论这个函数是如何被调用。 arg1, arg2, ... 当绑定函数被调用时,这些参数将置于实参之前传递给被绑定方法。...返回值 返回由指定this值初始化参数改造原函数拷贝 例1 window.color = 'red'; var o = {color: 'blue'}; function sayColor(){...func2(); 例2 注意:bind只生效一次 function f(){ return this.a; } //this被固定到了传入对象上 var g = f.bind({a:"azerty

2.2K10

apply、call、bind函数区别

apply、call、bind函数区别 一、前言 大多数人都知道,使用apply、call、bind可以调用函数,并改变函数中this指向。 做一个简单记录,免得以后忘记了。...bind前面两个有所不同,先看示例,一会再讲使用 var user = { username: "半月无霜", showInfo: function(age, sex){...= user.showInfo.bind(other); showInfo2(other.age, other.sex); 可以看到,bind在使用时候会返回一个改变this新函数,使用需要重新调用这个新函数才行...传参call一致,在后面添加原函数参数就可以 // 也可以这样写,效果是一样 user.showInfo.bind(other, other.age, other.sex)(); // 也可以这样...call:在传入改变this对象之后,依次传入原本函数参数 bind:由于特性,它传参分为一次参数二次传参,一次传参与call相同;二次传参首次传参与call类似,后一次调用传参补全原函数剩余参数

32010

js原生函数之callapply,bind

call apply call apply bind 都是为了改变某个函数运行时 context 即上下文而存在,换句话说,就是为了改变函数体内部 this 指向。...js原生函数中callapply都不陌生,这两个方法作用相似,接受两类参数。 第一类是context(上下文),传入参数作为执行函数上下文,也是要传入第一个参数。...,只是赋予了更加复杂应用逻辑; 这里同时也是闭包一个应用过程; bind 说了callapply,也是要介绍一下bind。...(tom)());//reading bind call使用方式很类似,同样接受两部分参数,上下文this作用函数后续参数,下面是我猜想bind模拟实现方法。...call主要区别在于,bind返回是一个新函数,而call这是直接执行了该函数。

86900

对于bind、call、apply 区别

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

25920

JS 手写: call、apply、bind

# call # Try it call() 方法使用一个指定 this 值单独给出一个或多个参数来调用一个函数。...该方法语法作用与 apply() 方法类似,只有一个区别,就是 call() 方法接受是一个参数列表,而 apply() 方法接受是一个包含多个参数数组。...# 描述 call() 允许为不同对象分配调用属于一个对象函数/方法。 call() 提供新 this 值给当前调用函数/方法。...call() 方法作用 apply() 方法类似,区别就是 call() 方法接受是参数列表,而 apply() 方法接受是一个参数数组。...# Try it bind() 方法创建一个新函数,在 bind() 被调用时,这个新函数 this 被指定为 bind() 第一个参数,而其余参数将作为新函数参数,供调用时使用。

1.5K30
领券