首页
学习
活动
专区
工具
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会指向默认宿主对象...,在浏览器中则是window var test = function(){ console.log(this===window); } test.apply(null);//true test.call

1.3K20

jscallapply

一、callapply简介 call() apply() 是预定义函数方法。 两个方法可用于调用函数,两个方法第一个参数必须是对象本身。 两个方法都使用了对象本身作为第一个参数。...两者区别在于第二个参数: apply传入是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call参数传入(从第二个参数开始)。...二、callapply相同点不同点 1. 区别 call传递参数是序列1,2,3,4 apply传递参数是集合型[1,2,3,4] 2....相同点 callapply是替换前面函数内部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
您找到你想要的搜索结果了吗?
是的
没有找到

JScall()apply()方法

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

2.1K30

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

1. call() 语法: fun.call(thisArg,arg1,arg2,…) fun: 表示一个函数 thisArg: this要指向对象,如果是null undefined,则指向window...特性: fun.call(thisArg,arg1,arg2,…) 会立即调用fun函数; call 方法将一个函数对象上下文从初始上下文改变为由 thisArg 指定新对象,如果没有提供 thisArg...: this要指向对象,如果是null undefined,则指向window全局对象; 参数是一个数组。...,如果是null undefined,则指向window全局对象; 从arg1开始,都是要给fun传递参数。...this函数 newFun(); // 3 4. call()、apply()bind()应用 1. call() call 常用来继承,因为ES6之前没有extends,用构造函数来模拟继承。

1.1K30

callapply

首先个人感觉callapply还是挺神奇,简简单单就改变了this作用域,下面我们来共同学习一下 1.callapply语法(改变this作用域,有点像冒充感觉,例子如下) function.apply...(person ,["孙悟空","七十二变"]);// 这步改变了this作用域,通俗理解就是person对象冒充了People对象, 然后使用了People对象中属性方法 people1...); 了解: 调用call对象必须是个函数function call第一个参数将会是function改变上下文后指向对象, 第二个参数开始可以接收任意个参数...(person ,"啄木鸟","捉虫子"); people1.paly(); person.paly() 代码基本没变,就是把apply替换成了call,作用相同,两者最大区别就是传递参数方式不同..., 通俗说 call传递参数是直接用双引号,然后一个接着一个传递 apply传递参数是通过一个数组形式传递

77930

JS 手写: callapply、bind

# call # Try it call() 方法使用一个指定 this 值单独给出一个或多个参数来调用一个函数。...该方法语法作用与 apply() 方法类似,只有一个区别,就是 call() 方法接受是一个参数列表,而 apply() 方法接受是一个包含多个参数数组。...# 描述 call() 允许为不同对象分配调用属于一个对象函数/方法。 call() 提供新 this 值给当前调用函数/方法。...call() 方法作用 apply() 方法类似,区别就是 call() 方法接受是参数列表,而 apply() 方法接受是一个参数数组。...[[Call]] - 执行与此对象关联代码。通过函数调用表达式调用。内部方法参数是一个this值一个包含通过调用表达式传递给函数参数列表。

1.5K30

Js apply() call()使用详解

Js apply方法详解 我在一开始看到javascript函数applycall时,非常模糊,看也看不懂,最近在网上看到一些文章对apply方法call一些示例,总算是看有点眉目了,在这里我做如下笔记...主要我是要解决一下几个问题: applycall区别在哪里 什么情况下用apply,什么情况下用call apply其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply...call定义,然后用示例来解释这两个方法意思如何去用....) call:apply意思一样,只不过是参数列表不一样....call示例 在Studen函数里面可以将apply中修改成如下: Person.call(this,name,age); 这样就ok了 3.什么情况下用apply,什么情况下用call 在给对象参数情况下

1.4K60

区别详解:jscall()apply()用法

1、关于call()apply()疑点: applycall区别在哪里 什么情况下用apply,什么情况下用call apply其他巧妙用法(一般在什么情况下可以使用apply) 2、语法参数分析...: applycall都能继承另外一个对象方法属性; Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组...,它将作为参数传给Function(args-->arguments) call:apply意思一样,只不过是参数列表不一样....(sub,3,1); 分析:这个例子中意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4); // 注意:js函数其实是对象...分析:即我没有的方法或属性,通过call继承,我就拥有了你方法属性,可以进行相关操作了。

64620

JScall apply bind用法

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

2.9K30

jscallapply用法

前天去面试,有个gg问了一些js知识,其中有一道callapply用法题目,尽管在365天前用过call方法,但当时还是没能答上来,今天深入总结一下 callapply,它们作用都是将函数绑定到另外一个对象上去运行...两者格式参数定义: call( thisArg [,arg1,arg2,… ] );       // 参数列表,arg1,arg2,... apply(thisArg [,argArray]...首先,我们先看个简单例子(call): <!...调用call方法,第二个参数属于函数对象func2参数,因此alert(x)为第二个参数func2 二、call 继承用法与改进 js使用call模拟继承 测试代码: <!...,应该是输出 baseA member baseB member,但实际输出却是 baseB member baseB member (已在IE9、8、6,Maxthon、Chrome、FF、Opera

2.7K10
领券