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

js中call与apply用法

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

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

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

    1、关于call()和apply()的疑点: apply和call的区别在哪里 什么情况下用apply,什么情况下用call apply的其他巧妙用法(一般在什么情况下可以使用apply) 2、语法和参数分析...,什么情况下用call 使用apply的情况:在给对象参数的情况下,如果参数的形式是数组的时候,比如apply示例里面传递了参数arguments,这个参数是数组类型。...的一些其他巧妙用法 细心的人可能已经察觉到,在我调用apply方法的时候,第一个参数是对象(this), 第二个参数是一个数组集合, 在调用Person的时候,他需要的不是一个数组,但是为什么他给我一个数组我仍然可以将数组解析为一个一个的参数...6、call的其他重要用法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]] 说明 : call 方法可以用来代替另一个对象调用一个方法。...add.call(sub,3,1); 分析:这个例子中的意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4); // 注意:js

    67020

    Js apply() call()使用详解

    Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记...主要我是要解决一下几个问题: apply和call的区别在哪里 什么情况下用apply,什么情况下用call apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply...的一些其他巧妙用法 细心的人可能已经察觉到,在我调用apply方法的时候,第一个参数是对象(this), 第二个参数是一个数组集合, 在调用Person的时候,他需要的不是一个数组,但是为什么他给我一个数组我仍然可以将数组解析为一个一个的参数...通常在什么情况下,可以使用apply类似Math.min等之类的特殊用法: 一般在目标函数只需要n个参数列表,而不接收一个数组的形式([param1[,param2[,…[,paramN]]]]),可以通过...apply的方式巧妙地解决这个问题!

    1.4K60

    「R」apply,lapply,sapply用法探索

    1. apply的家族函数 apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。...但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是使用者玩不转一类核心函数。...apply函数本身就是解决数据循环处理的问题,为了面向不同的数据类型,不同的返回值,apply函数组成了一个函数族,包括了8个功能类似的函数。这其中有些函数很相似,有些也不是太一样的。 ?...我一般最常用的函数为apply和sapply,下面将分别介绍这8个函数的定义和使用方法。 2. apply函数 apply函数是最常用的代替for循环的函数。...函数定义: apply(X, MARGIN, FUN, ...)

    4.5K32

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

    apply和call都是为了改变某个函数运行时的上下文而存在的(就是为了改变函数内部this的指向),Function对象的方法,每个函数都能调用; 使用apply或call方法,其运行的上下文指向第一个参数...,apply的第二个参数是一个参数数组,call的第二个及其以后的参数都是数组里面的元素。...apply和call的常用用法: 让类数组拥有方法; binde 方法的使用 也是改变函数体内this的指向,bind()是es5中的方法,bind会创建一个新函数,称为绑定函数,当调用这个函数的时候...这之后的代码就很好理解,返回一个函数,该函数把传给bind的第一个参数当做执行上下文,由于args已经是一个数组,排除第一项,将之后的部分作为第二部分参数传给apply,前面讲过apply用法。...总之三个的使用区别: 都是用来改变函数的this对象的指向的; 第一个参数都是this要指向的对象; 都可以利用后续参数传参; bind是返回对应函数,便于稍后调用,apply、call是立即调用; 发布者

    31630

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

    在JavaScript 中,call、apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数调用过程中的 this 指向 1 apply Function.apply...(obj,args) apply方法接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args-->arguments)...this.lastName; } } var person1 = { firstName: "Bill", lastName: "Gates", } person.fullName.apply...city + "," + country; } } var person1 = { firstName:"John", lastName: "Doe" } person.fullName.apply...那为什么要引入bind呢,是因为call和apply会自动执行目标函数,从而无法绑定在事件上,因为事件是我们手动触发的,而bind不会自动执行目标函数。

    7661211
    领券