首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

js call 和 apply

前言   call 和 apply 都是为了改变某个函数运行时 context 即上下文而存在,换句话说,就是为了改变函数体内部 this 指向。   ...call 和 apply二者作用完全一样,只是接受参数方式不太一样。...方法定义   apply   Function.apply(obj,args)方法能接收两个参数:     obj:这个对象将代替Function类this对象   args:这个是数组或类数组,apply...方法把这个集合中元素作为参数传递给被调用函数。...call   call方法与apply方法第一个参数是一样,只不过第二个参数是一个参数列表   在非严格模式下当我们第一个参数传递为null或undefined时,函数体内this会指向默认宿主对象

1.3K20

js call方法_recall

最近又遇到了JacvaScript中call()方法和apply()方法,而在某些时候这两个方法还确实是十分重要,那么就让我总结这两个方法使用和区别吧。 1....每个函数都包含两个非继承而来方法:call()方法和apply()方法。 2. 相同点: 这两个方法作用是一样。...一般来说,this总是指向调用某个方法对象,但是使用call()和apply()方法时,就会改变this指向。...call()方法 第一个参数和apply()方法一样,但是传递给函数参数必须列举出来。 语法:call([thisObject[,arg1 [,arg2 [,......说明: call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数对象上下文从初始上下文改变为thisObj指定新对象,如果没有提供thisObj参数,那么Global对象被用于thisObj

84720

jscall和apply

一、call和apply简介 call() 和 apply() 是预定义函数方法。 两个方法可用于调用函数,两个方法第一个参数必须是对象本身。 两个方法都使用了对象本身作为第一个参数。...两者区别在于第二个参数: apply传入是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call参数传入(从第二个参数开始)。...二、call和apply相同点和不同点 1. 区别 call传递参数是序列1,2,3,4 apply传递参数是集合型[1,2,3,4] 2....相同点 call和apply是替换前面函数内部this指针以及传递参数。 功能:可以自动执行前面的函数 都有两个参数:a. 替换对象 b....console.log(this,a,b,c);//{name: "张三", age: 20} 1 2 3 } method.call(obj,1,2,3); 方法2:使用apply

1.5K30

Js apply() call()使用详解

Js apply方法详解 我在一开始看到javascript函数apply和call时,非常模糊,看也看不懂,最近在网上看到一些文章对apply方法和call一些示例,总算是看有点眉目了,在这里我做如下笔记...和call定义,然后用示例来解释这两个方法意思和如何去用....Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类this对象 args:这个是数组,它将作为参数传给Function(args-->arguments...Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类this对象 params:这个是一个参数列表 1.apply...call示例 在Studen函数里面可以将apply中修改成如下: Person.call(this,name,age); 这样就ok了 3.什么情况下用apply,什么情况下用call 在给对象参数情况下

1.4K60

JS 手写: call、apply、bind

# call # Try it call() 方法使用一个指定 this 值和单独给出一个或多个参数来调用一个函数。...该方法语法和作用与 apply() 方法类似,只有一个区别,就是 call() 方法接受是一个参数列表,而 apply() 方法接受是一个包含多个参数数组。...# 描述 call() 允许为不同对象分配和调用属于一个对象函数/方法。 call() 提供新 this 值给当前调用函数/方法。...# 示例 # 使用 call 方法调用父构造函数 在一个子构造函数中,可以通过调用父构造函数 call 方法来实现继承,类似于 Java 中写法。...call() 方法作用和 apply() 方法类似,区别就是 call() 方法接受是参数列表,而 apply() 方法接受是一个参数数组。

1.5K30

JSbind、apply、call理解

概要 call、apply、bind 都是用来修改函数中this, 传参时,call是一个个传参,apply是数组形式传参,call和apply立即执行并且返回值是你调用方法返回值,若该方法没有返回值...bind是改变this后返回一个新函数,他不会立即执行。 这三个方法不会改变原方法this指向。 Bind 复制原方法传入新this指向后生成新方法,参数可传多个。..."); } }; let b = { name: "小红" }; a.play("小刚"); a.play.bind(b)("小刚"); 显示 小明和小刚一块玩 小红和小刚一块玩 Call...调用原方法传入新this指向,第一个参数为this指向对象,后面可传多个参数。..." + name1 + "、" + name2 + "一块玩"); } }; let b = { name: "小红" }; a.play("小刚", "小李"); a.play.call

92610

jsthis、call、apply、bind、继承、原型链

本文来自我github 0.前言 这些都是js基础进阶必备了,有时候可能一下子想不起来是什么,时不时就回头看看基础,增强硬实力。...= 1 } var f = new F() call、apply、bind 指向传入函数第一个参数。...、apply、bind 前两者都是一样,只是参数表现形式不同,bind表示是静态前两者,需要手动调用 a.call(b,args)让函数a执行上下文指向b,也就是b属性就算没有a函数,也能像b.a...(arguments)//call和apply我们都可以实现,这里就不再重复 return f.apply(ctx,args1.concat(args2))//将预先填入参数和执行时参数合并...} } 此外,需要注意,一个函数被bind后,以后无论怎么用call、apply、bind,this指向都不会变,都是第一次bind上下文 3.从call到继承 首先,js没有严格意义上子类父类,

88010

jscall与apply用法

前天去面试,有个gg问了一些js知识,其中有一道call与apply用法题目,尽管在365天前用过call方法,但当时还是没能答上来,今天深入总结一下 call和apply,它们作用都是将函数绑定到另外一个对象上去运行...);                 // 参数数组,argArray 上面两个函数内部this指针,都会被赋值为thisArg,这可实现将函数作为另外一个对象方法运行目的 一、call 简单用法...首先,我们先看个简单例子(call): <!...调用call方法,第二个参数属于函数对象func2参数,因此alert(x)为第二个参数func2 二、call 继承用法与改进 js使用call模拟继承 测试代码: <!...当调用extend.showSelfA();时,此时this指向extendAB(并不是我们推测两次都指向baseB对象) 真实原因是extendAB对象成员变量member在被baseB.call

2.7K10
领券