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

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

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

JScall()和apply()方法

JScall()和apply()方法 1、方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象一个方法,...说明: call 方法可以用来代替另一个对象调用一个方法call 方法可将一个函数对象上下文从初始上下文改变为由 thisObj 指定新对象。...(sub,3,1); 这个例子中意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4); // 注意:js函数其实是对象...(this); 20 Class11.call(this); 21 } 很简单,使用两个 call 就实现多重继承了 当然,js继承还有其他方法,例如使用原型链,这个不属于本文范畴...说了call ,当然还有 apply,这两个方法基本上是一个意思,区别在于 call 第二个参数可以是任意类型,而apply第二个参数必须是数组,也可以是arguments 还有 callee,caller

2.2K30

jscall方法理解和思考

最近接手前端工作,对当前项目中自制js框架下,js使用产生了非常多困惑.尤其是js类,对象,函数,this等等相互之间关系和转换,以前学过也忘得差不多了,现在基本相当于重新看. js函数有可以有好几种解释...(); console.log(u);//2.这个时候是当做user类 user.toString();//3.这个时候user是作为对象 ?...Function是个函数对象,也可以认为是个类,所有定义函数都是Function类对象,我定义user也是对象,并且可以调用Function里面的方法 user.call(xxx);当我使用user...调用call方法时,他是作为对象来使用,调用是Function类里面的call方法,这个方法作用是调用这个函数并且把传递进去参数覆盖函数里面的this .第一个参数是覆盖函数里面的this , 剩下参数是作为这个函数参数传进去...function user(name){ console.log('我被调用了,this被覆盖了',this,',参数传进来了',name); }; user.call({},'陶士涵');

93430

JScall()方法和apply()方法和slice()用法总结

每个函数都包含两个非继承而来方法call()方法和apply()方法。 2. 相同点:这两个方法作用是一样。...一般来说,this总是指向调用某个方法对象,但是使用call()和apply()方法时,就会改变this指向。...call()方法 第一个参数和apply()方法一样,但是传递给函数参数必须列举出来。 语法:call([thisObject[,arg1 [,arg2 [,......,argn]]]]);,应用某一对象一个方法,用另一个对象替换当前对象。...说明: call方法可以用来代替另一个对象调用一个方法call方法可以将一个函数对象上下文从初始上下文改变为thisObj指定新对象,如果没有提供thisObj参数,那么Global对象被用于thisObj

86620

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.6K30

Js apply() call()使用详解

Js apply方法详解 我在一开始看到javascript函数apply和call时,非常模糊,看也看不懂,最近在网上看到一些文章对apply方法call一些示例,总算是看有点眉目了,在这里我做如下笔记...和call定义,然后用示例来解释这两个方法意思和如何去用....apply:方法能劫持另外一个对象方法,继承另外一个对象属性....call示例 在Studen函数里面可以将apply中修改成如下: Person.call(this,name,age); 这样就ok了 3.什么情况下用apply,什么情况下用call 在给对象参数情况下...(Person.call(this,age,name,grade)); 4.apply一些其他巧妙用法 细心的人可能已经察觉到,在我调用apply方法时候,第一个参数是对象(this), 第二个参数是一个数组集合

1.4K60

划重点:jsthis、call、apply

js中this有4种指向,分别为: 作为对象方法调用 作为普通函数调用 构造器调用 Function.prototype.call或Function.prototype.apply调用 1、当作为对象方法调用时...*/ 3、在构造器中调用this 先要理解js构造器。...(数组或类数组)] 4 ) 1func.call( 2 [参数一:将调用call方法函数体内this对象指向改为指向本参数], 3 [参数二:传入调用call方法函数体内参数...1] //从第二个参数开始,每个参数被依次传入函数func中 4 [参数三:传入调用call方法函数体内参数2] 5 [参数四:传入调用call方法函数体内参数3] 6 .....延伸应用: 理解了this、call、apply后,在实际js开发中,可以很方便实现对象继承 继承demo1: 1var Parent = function(){ 2 this.name

96320

jscall和apply区别

调用函数时, call和apply传递参数方式不同 以名为showHide函数为例: function showHide(name1, name2){ if(this.parentNode.parentNode.querySelector...可以按照顺序传递showHide.call(this, '桐人', '亚丝娜') apply则是将参数放到一个数组, 统一传递showHide.apply(this, ['上条', '御坂']) 用...call和apply实现相同折叠Demo ?...身为VRMMORPG(虚拟大规模线上角色扮演游戏)《刀剑神域〈SAO〉》中其中一名玩家:桐人和其他一万个玩家才刚登入享受此游戏之时,游戏中管理员对大家宣布了一个令人惊恐消息── 那就是,现在唯一要登出此游戏方法只有将这个游戏破关... 小结: 使用call和apply调用函数时, 往往需要传递一个this, 目的是确定被调用函数showHide运行时函数内部this指向, 以上面的demo为例, 如果调用函数

1.8K30

JS 手写: call、apply、bind

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

1.5K30

JScall apply bind用法

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

2.9K30

JSbind、apply、call理解

概要 call、apply、bind 都是用来修改函数中this, 传参时,call是一个个传参,apply是数组形式传参,call和apply立即执行并且返回值是你调用方法返回值,若该方法没有返回值...bind是改变this后返回一个新函数,他不会立即执行。 这三个方法不会改变原方法this指向。 Bind 复制原方法传入新this指向后生成新方法,参数可传多个。...调用原方法传入新this指向,第一个参数为this指向对象,后面可传多个参数。...(b, "小刚", "小李"); 显示 小明和小刚、小李一块玩 小红和小刚、小李一块玩 Apply 调用原方法传入新this指向,第一个参数为this指向对象,第二个参数只能为一个数组。...、apply、bind 是Function.prototype下方法,作用是执行一下目标函数,执行时顺便把目标函数中this改一下,然后把结果输出,执行后,不会影响原函数中this!

93910
领券