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

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) 的意思就是使用 Animal对象代替this对象,那么 Cat不就有Animal的所有属性和方法了吗,Cat对象就能够直接调用Animal的方法以及属性了....(this); 20 Class11.call(this); 21 } 很简单,使用两个 call 就实现多重继承了 当然,js的继承还有其他方法,例如使用原型链,这个不属于本文的范畴

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

    js call方法_recall

    最近又遇到了JacvaScriptcall()方法和apply()方法,而在某些时候这两个方法还确实是十分重要的,那么就让我总结这两个方法的使用和区别吧。 1....每个函数都包含两个非继承而来的方法call()方法和apply()方法。 2. 相同点: 这两个方法的作用是一样的。...一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。...call()方法 第一个参数和apply()方法的一样,但是传递给函数的参数必须列举出来。 语法:call([thisObject[,arg1 [,arg2 [,......说明: call方法可以用来代替另一个对象调用一个方法call方法可以将一个函数的对象上下文从初始的上下文改变为thisObj指定的新对象,如果没有提供thisObj参数,那么Global对象被用于thisObj

    87620

    jscall方法的理解和思考

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

    94430

    jscall与apply用法

    前天去面试,有个gg问了一些js知识,其中有一道call与apply用法的题目,尽管在365天前用过call方法,但当时还是没能答上来,今天深入总结一下 call和apply,它们的作用都是将函数绑定到另外一个对象上去运行...);                 // 参数数组,argArray 上面两个函数内部的this指针,都会被赋值为thisArg,这可实现将函数作为另外一个对象的方法运行的目的 一、call 的简单用法...方法,this默认指向第一个参数window对象,因此this.value也为global var 3、函数gFunc调用call方法,this默认指向第一个参数new mFunc(),即mFunc的对象...调用call方法,第二个参数属于函数对象func2的参数,因此alert(x)为第二个参数func2 二、call 继承用法与改进 js使用call模拟继承 测试代码: <!...继承改进(prototype) 以上模拟继承方法,仔细分析不是最好的。 因为每次在函数(类)定义了成员方法,都会导致实例有副本,因此可以借助prototype原型,进行改进 改进举例如下: <!

    2.8K10

    jscall和apply的区别

    call和apply实现相同的折叠的Demo ?...身为VRMMORPG(虚拟大规模线上角色扮演游戏)《刀剑神域〈SAO〉》的其中一名玩家:桐人和其他一万个玩家才刚登入享受此游戏之时,游戏中的管理员对大家宣布了一个令人惊恐的消息── 那就是,现在唯一要登出此游戏的方法只有将这个游戏破关...,并且在这个游戏中GAME OVER的话,也就代表了现实世界的“死亡”。.../image/jinshu.jpg"> 故事讲述的是从东京都西部被分割出来的这座都市,“超能力开发”被列为学校课程的一部分...某一个暑假的日子,在家里的阳台上,他遇见了一位修女;这位少女自称自己的名字叫“茵蒂克丝”,并是从魔法的世界逃了出来,现在正在被魔法师追赶

    1.8K30

    划重点:js的this、call、apply

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

    97820

    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

    JS的bind、apply、call的理解

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

    96010

    js call 和 apply

    方法把这个集合的元素作为参数传递给被调用的函数。...call   call方法与apply方法的第一个参数是一样的,只不过第二个参数是一个参数列表   在非严格模式下当我们第一个参数传递为null或undefined时,函数体内的this会指向默认的宿主对象...,在浏览器则是window var test = function(){ console.log(this===window); } test.apply(null);//true test.call...(undefined);//true 用法   "劫持"别人的方法   此时foo的logName方法将被bar引用 ,this指向了bar var foo = { name:"mingming"...})(1,2,3) 这样就往argumentspush一个4进去了 Array.prototype.push 页可以实现两个数组合并 同样push方法没有提供push一个数组,但是它提供了push(param1

    1.3K20

    【Groovy】闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类定义 call() 方法 | 代码示例 )

    文章目录 总结 一、接口中定义 call() 方法 二、类定义 call() 方法 三、完整代码示例 总结 在 实例对象后使用 " () " 括号符号 , 表示调用该实例对象的 " call() "...方法 ; 一、接口中定义 call() 方法 ---- 定义 Action 接口 , 在该接口中 , 创建 void call() 抽象方法 ; /** * 创建接口 * 接口中定义 call 方法...3 内容 ; 同时上述匿名内部类 , 可以当做闭包 , 传递给 /** * 定义一个方法 , 接收闭包作为参数 , 在方法执行闭包内容 * @param closure * @return...匿名内部类的 call 方法 ; // 向 fun 函数 , 传入 Action 匿名内部类 // 此时执行该函数时 , 执行闭包内容 , 会自动调用 Action 匿名内部类的 call 方法 fun...Closure 4 二、类定义 call() 方法 ---- 在普通的 Groovy 类 , 定义 call() 方法 ; // 定义一个有 call 方法的类 class Action2 {

    57050
    领券