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

    第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后面可以接任意个参数,最后返回所有参数中最大值。

    66830

    jscall和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

    js call方法_recall

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

    87620

    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

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

    9210

    划重点: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

    97820

    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 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]]]]),可以通过

    1.4K60

    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指向后生成新方法,参数可传多个。..."); } }; let b = { name: "小红" }; a.play("小刚"); a.play.bind(b)("小刚"); 显示 小明和小刚一块玩 小红和小刚一块玩 Call...调用原方法传入新this指向,第一个参数为this指向对象,后面可传多个参数。...、apply、bind 是Function.prototype下方法,作用是执行一下目标函数,执行时顺便把目标函数this改一下,然后把结果输出,执行后,不会影响原函数this!

    96010

    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

    40130
    领券