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

第195天:js---函数对象详解(call、apply)

一、call 1、call供爷法则 1 // 对象1 2 var myclass={ 3 getAllStudentsNumbers:function(num1,num2){...和apply的区别 传参的不同 14 //call是所有参数平铺,apply是将参数放在数组中进行传递 15 console.log(myclass.getAllStudentsNumbers.call...student,10,20));//30 16 console.log(myclass.getAllStudentsNumbers.apply(student,[10,20]));//30 1 //函数其实也是对象...去执行Person这个类里面的内容, 在Person这个类里面存在this.name等之类的语句, 28 // 这样就将属性创建到了student对象里面 2、巧妙用法 (1)Max函数用法...) 这个如果让我们用程序来实现将数组的每一个项,来转换为参数的列表, 8 // 可能都得费一会功夫,借助apply的这点特性,所以就有了以下高效率的方法: 9 10 // max函数用法

66130

js call 和 apply

前言   call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。   ...call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。...Function.apply(obj,args)方法能接收两个参数:     obj:这个对象将代替Function类里this对象   args:这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数...call   call方法与apply方法的第一个参数是一样的,只不过第二个参数是一个参数列表   在非严格模式下当我们第一个参数传递为null或undefined时,函数体内的this会指向默认的宿主对象...有一个局部的fun方法,fun被作为普通函数调用时,fun内部的this指向了window,但我们往往是想让它指向该#test节点,见如下代码: window.id="window"; document.querySelector

1.3K20

js call方法_recall

每个函数都包含两个非继承而来的方法:call()方法和apply()方法。 2. 相同点: 这两个方法的作用是一样的。...都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。...apply()方法 接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。...call()方法 第一个参数和apply()方法的一样,但是传递给函数的参数必须列举出来。 语法:call([thisObject[,arg1 [,arg2 [,......说明: call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始的上下文改变为thisObj指定的新对象,如果没有提供thisObj参数,那么Global对象被用于thisObj

86320

Js apply() call()使用详解

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

1.4K60

JS 手写: call、apply、bind

# call # Try it call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。...# 描述 call() 允许为不同的对象分配和调用属于一个对象的函数/方法。 call() 提供新的 this 值给当前调用的函数/方法。...# 示例 # 使用 call 方法调用父构造函数 在一个子构造函数中,可以通过调用父构造函数call 方法来实现继承,类似于 Java 中的写法。...[[BoundArguments]] - 列表,在对包装函数做任何调用都会优先用列表元素填充参数列表。 [[Call]] - 执行与此对象关联的代码。通过函数调用表达式调用。...当调用绑定函数时,它调用 [[BoundTargetFunction]] 上的内部方法 [[Call]],就像这样 Call(boundThis, args)。

1.5K30

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

jscall与apply用法

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

2.7K10

apply、call、bind函数的区别

apply、call、bind函数的区别一、前言大多数人都知道,使用apply、call、bind可以调用函数,并改变函数中this的指向。做一个简单记录,免得以后忘记了。...使用:函数.call(obj, args...)参数:第一个参数为函数中this指向的对象,后面的参数跟着原本的函数就好,加在后面就行JAVASCRIPTvar user = { username...、bind他们的异同点相同点:都可以改变函数中this的指向,且都将作为第一个参数进行使用不同点(传参方面)apply:在传入改变this的对象之后,将原来的函数参数,打包成一个数组进行传参call:在传入改变...this的对象之后,依次传入原本的函数参数bind:由于特性,它的传参分为一次参数和二次传参,一次传参与call相同;二次传参首次传参与call类似,后一次调用传参补全原函数剩余的参数不同点(调用方面)...apply、call函数.apply()或者函数.call(),即可发起调用bind:先返回一个改变指向的函数,再通过这个函数进行调用我是半月,祝你幸福!!!

3910

PHP 中 call_user_func 函数call_user_func_array 函数的区别

PHP 中 call_user_func() 函数call_user_func_array() 函数都是回调函数,在写接口的时候经常会用到,但是他们有什么区别呢?...它们的第一个参数都是被调用的回调函数call_user_func() 还可以有多个参数,它们都是回调函数的参数,call_user_func_array() 只有两个参数,第二个参数是要被传入回调函数的数组...所以它们最大的区别就是: 如果传递一个数组给 call_user_func_array(),数组的每个元素的值都会当做一个参数传递给回调函数,数组的 key 回调掉。...如果传递一个数组给 call_user_func(),整个数组会当做一个参数传递给回调函数,数字的 key 还会保留住。...个参数:"; echo " "; print_r($args); echo " "; } 然后我们分别使用 call_user_func 函数call_user_func_array

39130

jscall、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...作用 首先问个问题,这三个函数的存在意义是什么?答案是改变函数执行时的上下文,再具体一点就是改变函数运行时的this指向。有了这个认识,接下来我们来看一下,怎么使用这三个函数。...所以其实他们干的事从本质上讲都是一样的动态的改变this上下文,但是多少还是有一些差别的.. call、apply与bind的差别 call和apply改变了函数的this上下文后便执行该函数,而bind...则是返回改变了上下文后的一个函数。...length属性 ) 数组追加 在js中要往数组中添加元素,可以直接用push方法, var arr1 = [1,2,3]; var arr2 = [4,5,6]; [].push.apply

1.6K60

jscall、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...作用 首先问个问题,这三个函数的存在意义是什么?答案是改变函数执行时的上下文,再具体一点就是改变函数运行时的this指向。有了这个认识,接下来我们来看一下,怎么使用这三个函数。...所以其实他们干的事从本质上讲都是一样的动态的改变this上下文,但是多少还是有一些差别的.. call、apply与bind的差别 call和apply改变了函数的this上下文后便执行该函数,而bind...则是返回改变了上下文后的一个函数。...,-8,687); 将伪数组转化为数组 js中的伪数组(例如通过document.getElementsByTagName获取的元素)具有length属性,并且可以通过0、1、2…下标来访问其中的元素

1.7K50
领券