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

JScall apply bind用法

谁调用当前的属性或者方法的,它就是谁 /* 2.1.bind方法作用 修改函数或者方法的this为指定的对象, 并且会返回一个修改之后的新函数给我们 注意点...: bind方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面 */ //call apply bind修改this的.../*call:修改函数或者方法的this为指定的对象, 并且会立即调用修改之后的函数 注意点: call方法除了可以修改this以外, 还可以传递参数, */.../*apply:修改函数或者方法的this为指定的对象, 并且会立即调用修改之后的函数 注意点: apply方法除了可以修改this以外, 还可以传递参数, 只不过参数必须通过数组的方式传递...console.log(this); } test(10,20); window.test(); let fn=test.bind

2.9K30

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

call 方法将一个函数的对象上下文从初始的上下文改变为由 thisArg 指定的新对象,如果没有提供 thisArg 参数,那么 Window对象被用作 thisArg; 将arg1等参数传递进fun函数,...; apply方法将一个函数的对象上下文从初始的上下文改变为由 thisArg 指定的新对象,如果没有提供 thisArg 参数,那么 Window对象被用作 thisArg; 将数组传递进fun函数,...特性: fun.bind(thisArg,arg1,arg2,…) 不会立即调用fun函数,会返回一个新的指定了this的函数; bind方法将一个函数的对象上下文从初始的上下文改变为由 thisArg...指定的新对象,如果没有提供 thisArg 参数,那么 Window对象被用作 thisArg; 将arg1等参数传递进fun函数。...获取数组的最大值与最小值: const arr = [1, 4, 7, -1]; Math.max.apply(Math, arr); // 7 Math.min.apply(Math, arr);

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

JavaScript call()、apply()、bind() 的用法

在JavaScript ,call、apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数调用过程的 this 指向 1 apply Function.apply...person1 = { firstName:"Bill", lastName: "Gates" } person.fullName.call(person1, "Seattle", "USA"); 3 bind...Function.bind(obj[,params...]) bind是ES5 新增的一个方法,它的传参和call类似,也是接收两个参数。...lastName: "Gates" } person.fullName.call(person1, "Seattle", "USA")(); 可以从上面看出,使用方法基本和call一致,只是后面多了(),其实是bind...那为什么要引入bind呢,是因为call和apply会自动执行目标函数,从而无法绑定在事件上,因为事件是我们手动触发的,而bind不会自动执行目标函数。

7531211

jscall、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...所以其实他们干的事从本质上讲都是一样的动态的改变this上下文,但是多少还是有一些差别的.. call、apply与bind的差别 call和apply改变了函数的this上下文后便执行该函数,而bind...67,5,7,6,-8,687);Math.min.apply(Math, arr);Math.min.call(Math, 34,5,3,6,54,6,-67,5,7,6,-8,687); 将伪数组转化为数组 js...的伪数组(例如通过document.getElementsByTagName获取的元素)具有length属性,并且可以通过0、1、2…下标来访问其中的元素,但是没有Array的push、pop等方法...要往数组添加元素,可以直接用push方法, 1234567 var arr1 = [1,2,3];var arr2 = [4,5,6];[].push.apply(arr1, arr2);// arr1

1.7K50

jscall、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...8,687); Math.min.apply(Math, arr); Math.min.call(Math, 34,5,3,6,54,6,-67,5,7,6,-8,687); 将伪数组转化为数组 js...的伪数组(例如通过document.getElementsByTagName获取的元素)具有length属性,并且可以通过0、1、2…下标来访问其中的元素,但是没有Array的push、pop等方法...Array.prototype.slice.call(arrayLike); 上面arr便是一个包含arrayLike元素的真正的数组啦( 注意数据结构必须是以数字为下标而且一定要有length属性 ) 数组追加 在js...要往数组添加元素,可以直接用push方法, var arr1 = [1,2,3]; var arr2 = [4,5,6]; [].push.apply(arr1, arr2);

1.6K60

JavaScriptapply、call、bind的区别与用法

apply()、call()和bind()方法都是Function.prototype对象的方法,而所有的函数都是Function的实例。三者都可以改变this的指向,将函数绑定到上下文中。 1....语法: fun.bind(thisArg, 队列or数组)() 2. 用法 这三个方法的用法非常相似,将函数绑定到上下文中,即用来改变函数this的指向。 2.1 普通写法 ?...2.3 bind()的用法 ? bind方法传递给调用函数的参数可以逐个列出,也可以写在数组bind方法与call、apply最大的不同就是前者返回一个绑定上下文的函数,而后两者是直接执行了函数。...总结bind()的用法:该方法创建一个新函数,称为绑定函数,绑定函数会以创建它时传入bind()的第一个参数作为this,传入bind()的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数...应用场景 3.1 求数组的最大和最小值 ? 3.2将类数组转化为数组 ? 3.3 数组追加 ? 3.4 判断变量类型 ? 3.5 利用call和apply做继承 ?

1.1K20

JSbind、apply、call的理解

概要 call、apply、bind 都是用来修改函数的this, 传参时,call是一个个传参,apply是数组形式传参,call和apply立即执行并且返回值是你调用的方法的返回值,若该方法没有返回值...bind是改变this后返回一个新的函数,他不会立即执行。 这三个方法不会改变原方法的this的指向。 Bind 复制原方法传入新的this指向后生成新方法,参数可传多个。...console.info(this.name + "和" + name + "一块玩"); } }; let b = { name: "小红" }; a.play("小刚"); a.play.bind..." }; a.play("小刚", "小李"); a.play.apply(b, ["小刚", "小李"]); 显示 小明和小刚、小李一块玩 小红和小刚、小李一块玩 结论: call、apply、bind...是Function.prototype下的方法,作用是执行一下目标函数,执行时顺便把目标函数的this改一下,然后把结果输出,执行后,不会影响原函数的this!

92610

jsreduce的用法

prev.indexOf(cur) === -1 && prev.push(cur); return prev; },[]); 实现的基本原理如下: ① 初始化一个空数组 ② 将需要去重处理的数组的第...1项在初始化数组查找,如果找不到(空数组中肯定找不到),就将该项添加到初始化数组 ③ 将需要去重处理的数组的第2项在初始化数组查找,如果找不到,就将该项继续添加到初始化数组 ④ …… ⑤...将需要去重处理的数组的第n项在初始化数组查找,如果找不到,就将该项继续添加到初始化数组 ⑥ 将这个初始化数组返回 4....其它reduceRight()方法 该方法用法与reduce()其实是相同的,只是遍历的顺序相反,它是从数组的最后一项开始,向前遍历到第一项。 5.

5.6K40

jsfind的用法_jsfind函数

一半有两种办法实现,第一种办法是后端直接将数据处理好,我们通过ajax请求拿到返回的数据这是很普遍的一种做法,这样后端的压力比较大,我们举个例子: /** * aim csdn博客 - find()用法...下面我们讲怎么用前端处理这块的逻辑 首先我们拿到了所有的数据这里我直接放到一个测试用的js里面存放, 要实现之前说的效果,就需要使用我们今天的主角find()方法。 find()是用来做什么的呢?...find()方法返回数组符合测试函数条件的第一个元素。否则返回undefined 在本文章需要注意的几个点: ①、第一个元素 ②、测试函数 那么如何使用呢?...-- aim csdn博客 - find()用法 author clearlove date 18-08-06 --> <script src="<em>js</em>/jquery-1.11.2.

11.5K30

JS 手写: call、apply、bind

可以使用 call 来实现继承:写一个方法,然后让另外一个新的对象来继承它(而不是在新对象再写一次这个方法)。...# 示例 # 使用 call 方法调用父构造函数 在一个子构造函数,可以通过调用父构造函数的 call 方法来实现继承,类似于 Java 的写法。...# Try it bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。...当使用 bind 在 setTimeout 创建一个函数(作为回调提供)时,作为 thisArg 传递的任何原始值都将转换为object。...# 示例 # 创建绑定函数 bind() 最简单的用法是创建一个函数,不论怎么调用,这个函数都有同样的 this 值。

1.4K30

bind()、call()、apply()理解及用法

apply和call的常用用法: 让类数组拥有方法; binde 方法的使用 也是改变函数体内this的指向,bind()是es5的方法,bind会创建一个新函数,称为绑定函数,当调用这个函数的时候...首先,我们判断是否存在bind方法,然后,若不存在,向Function对象的原型添加自定义的bind方法。...所以原型的this值就明朗了。指向调用它的对象。...这之后的代码就很好理解,返回一个函数,该函数把传给bind的第一个参数当做执行上下文,由于args已经是一个数组,排除第一项,将之后的部分作为第二部分参数传给apply,前面讲过apply的用法。...如此,我们自己的这个bind函数的行为就同es5bind一样了。

25030
领券