首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    13 //call和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 //函数其实也是对象...; 3、call使用场景---数组化 将伪数组转换为数组: var domNodes = Array.prototype.slice.call(divs); 1 /*伪数组:只有数组的部分功能:length..., 28 // 这样就将属性创建到了student对象里面 2、巧妙用法 (1)Max函数用法 1 // apply的一些其他巧妙用法 2 // 细心的人可能已经察觉到,在我调用...: 9 10 // max函数用法 11 // Math.max后面可以接任意个参数,最后返回所有参数中的最大值。

    97730

    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

    2K20

    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.

    2.4K30

    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:先返回一个改变指向的函数,再通过这个函数进行调用我是半月,祝你幸福!!!

    57410

    JS手撕(四) call、apply、bind、柯里化、偏函数

    JS手撕(四)    call、apply、bind、柯里化、偏函数 call call()方法就是使用一个指定的this值和一个或多个参数来调用一个函数。...) 柯里化的意思就是将使用多个参数的函数转换成一系列使用一个参数的函数的技术。...,该函数会判断参数的数量有没有大于等于原函数的参数数量,如果等于直接返回结果,否则继续递归,直到数量大于等于原函数的参数数量。...,而是不够的参数直接把值当成`undefined` addPartial(7)(8); // 报错,不能像柯里化一样(有点点像低配柯里化) 参考 死磕 36 个 JS...手写题(搞懂后,提升真的大) - 掘金 GitHub - qianlongo/fe-handwriting: 手写各种js Promise、apply、call、bind、new、deepClone…

    80640

    Js apply() call()使用详解

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

    2K60

    JS 手写: call、apply、bind

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

    2.5K30

    JS中call 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

    3.9K30

    划重点:js中的this、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

    1.7K20

    JS中的bind、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的指向对象,后面可传多个参数。...、apply、bind 是Function.prototype下的方法,作用是执行一下目标函数,执行时顺便把目标函数中的this改一下,然后把结果输出,执行后,不会影响原函数中的this!

    1.4K10

    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

    1K30

    函数调用之 CALL 的硬编码

    可以回顾一下之前的文章: main 函数程序入口?充其量是程序员的代码入口! 你这个程序员懂函数调用么 好了~!风吹哪页读哪页,哪页不懂撕哪页!今天来简单的说说 CALL 指令机器码的一种形式。...CALL 是函数调用的重要指令,它的硬编码有几种形式吧,其中一种形式是,是 Opcode 后面跟着一个偏移。...为什么 CALL 指令用的是偏移呢(当然了也有不用偏移的,那是其他格式一些间接寻址)。其实 CALL 的步骤有好几步。...当执行到 CALL 的时候,在 CALL 真正完成之前,会有一个压栈的动作,它需要把下一条指令的地址压栈,以方便被调用函数在执行完成后能正确返回。...返回来看一下上面的公式,CALL 的当前地址 + CALL 指令的长度,其实就是下一条指令的地址,下一条指令的地址 + CALL 硬编码的偏移,就得到了 CALL 指令真正要执行的目标地址了。

    22410
    领券