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

js call 和 apply

call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。...方法定义   apply   Function.apply(obj,args)方法能接收两个参数:     obj:这个对象将代替Function类里this对象   args:这个是数组或类数组,apply...方法把这个集合中的元素作为参数传递给被调用的函数。...call   call方法与apply方法的第一个参数是一样的,只不过第二个参数是一个参数列表   在非严格模式下当我们第一个参数传递为null或undefined时,函数体内的this会指向默认的宿主对象...(arr1,arr2); console.log(arr1);//["1", "2", "3", "4", "5", "6"] 也可以这样理解,arr1调用了push方法,参数是通过apply将数组装换为参数列表的集合

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

JS 手写: call、apply、bind

该方法的语法和作用与 apply() 方法类似,只有一个区别,就是 call() 方法接受的是一个参数列表,而 apply() 方法接受的是一个包含多个参数的数组。...call() 方法的作用和 apply() 方法类似,区别就是 call() 方法接受的是参数列表,而 apply() 方法接受的是一个参数数组。...使用 apply, 可以只写一次这个方法然后在另一个对象中继承它,而不用在新对象中重复写该方法。 apply 与 call() 非常相似,不同之处在于提供参数的方式。...apply 使用参数数组而不是一组参数列表。...这样,在使用 apply 函数的时候就不需要知道被调用对象的所有参数。可以使用 arguments 来把所有的参数传递给被调用对象。 被调用对象接下来就负责处理这些参数

1.5K30

Js apply() call()使用详解

Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记...中修改成如下: Person.call(this,name,age); 这样就ok了 3.什么情况下用apply,什么情况下用call 在给对象参数的情况下,如果参数的形式是数组的时候,比如apply示例里面传递了参数...age,name,grade)); 4.apply的一些其他巧妙用法 细心的人可能已经察觉到,在我调用apply方法的时候,第一个参数是对象(this), 第二个参数是一个数组集合, 在调用Person...),所以可以根据刚才apply的那个特点来解决 var max=Math.max.apply(null,array),这样轻易的可以得到一个数组中最大的一项 (apply会将一个数组装换为一个参数接一个参数的传递给方法...apply将数组装换为参数列表的集合.

1.4K60

js中call与apply用法

前天去面试,有个gg问了一些js知识,其中有一道call与apply用法的题目,尽管在365天前用过call方法,但当时还是没能答上来,今天深入总结一下 call和apply,它们的作用都是将函数绑定到另外一个对象上去运行...两者的格式和参数定义: call( thisArg [,arg1,arg2,… ] );       // 参数列表,arg1,arg2,... apply(thisArg [,argArray]...doctype html> call-apply <input type="text" id...值input text 5、函数func2调用call方法,this默认指向第一个参数func函数对象,因此this.value为this.a,即func 6、函数func2调用call方法,第二个参数属于函数对象...func2的参数,因此alert(x)为第二个参数func2 二、call 继承用法与改进 js使用call模拟继承 测试代码: <!

2.7K10

js中的call和apply

一、call和apply简介 call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。 两个方法都使用了对象本身作为第一个参数。...两者的区别在于第二个参数apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。...在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。...二、call和apply的相同点和不同点 1. 区别 call传递的参数是序列1,2,3,4 apply传递的参数是集合型[1,2,3,4] 2....相同点 call和apply是替换前面函数内部的this指针以及传递参数。 功能:可以自动执行前面的函数 都有两个参数:a. 替换的对象 b.

1.5K30

JS中call apply bind的用法

2.1.bind方法作用 修改函数或者方法中的this为指定的对象, 并且会返回一个修改之后的新函数给我们 注意点: bind方法除了可以修改this以外, 还可以传递参数..., 只不过参数必须写在this对象的后面 */ //call apply bind修改this的 /*call:修改函数或者方法中的this为指定的对象..., 并且会立即调用修改之后的函数 注意点: call方法除了可以修改this以外, 还可以传递参数, */ /*apply:修改函数或者方法中的this...为指定的对象, 并且会立即调用修改之后的函数 注意点: apply方法除了可以修改this以外, 还可以传递参数, 只不过参数必须通过数组的方式传递 立即执行是不返回的....p.say(); let fn=p.say.bind(obj); fn(); p.say.call(obj); p.say.apply

2.9K30

划重点:js中的this、call、apply

js中this有4种指向,分别为: 作为对象的方法调用 作为普通函数调用 构造器调用 Function.prototype.call或Function.prototype.apply调用 1、当作为对象的方法调用时...apply接收两个参数,第一个参数指定了调用apply的函数体内this对象的指向,第二个参数是一个带下标的集合,该集合可以是数组,也可以是类数组,apply方法把这个集合中的所有元素作为参数依次传递给调用...情况下,前面调用apply或call的函数体内的this原有指向被更改为指向apply或call方法中的第一个参数。...区别仅在于两者的第二个参数传入不同: 1func.apply( 2 [参数一:将调用apply方法的函数体内的this对象指向改为指向本参数], 3 [参数二:传入调用apply方法的函数体内的参数集合...延伸应用: 理解了this、call、apply后,在实际js开发中,可以很方便的实现对象的继承 继承demo1: 1var Parent = function(){ 2 this.name

95420

js中call、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...call、apply的区别 他们俩之间的差别在于参数的区别,call和aplly的第一个参数都是要改变上下文的对象,而call从第二个参数开始以参数列表的形式展现,apply则是把除了改变上下文对象的参数放在一个数组里面作为它的第二个参数...;fn.apply(obj, [arg1, arg2, arg3...]); 应用 知道了怎么使用和他们之间的区别,接下来我们来了解一下通过call、apply、bind的常见应用场景。...,-8,687); 将伪数组转化为数组 js中的伪数组(例如通过document.getElementsByTagName获取的元素)具有length属性,并且可以通过0、1、2…下标来访问其中的元素...Array.prototype.slice.call(arrayLike); 上面arr便是一个包含arrayLike元素的真正的数组啦( 注意数据结构必须是以数字为下标而且一定要有length属性 ) 数组追加 在js

1.7K50
领券