资讯专栏INFORMATION COLUMN

apply() 和 call() 作用

philadelphia / 1920人阅读

摘要:每个函数都包含两个非继承而来的方法和。与都属于的一个方法,所以每个实例都有属性作用方法和方法的作用相同改变指向。在使用方法时,传递给函数的参数必须逐个列举出来。例上代码指向指向

每个函数都包含两个非继承而来的方法:apply()和call()。;
call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性;
作用

call()方法和apply()方法的作用相同:改变this指向。

区别

他们的区别在于接收参数的方式不同:
call():第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。在使用call()        
方法时,传递给函数的参数必须逐个列举出来。例:call(obj,a,b,c)
apply():传递给函数的是参数数组。 例:apply(obj,[a,b,c])

上代码:

function add(c, d){ 
    return this.a + this.b + c + d; 
} 
var o = {a:1, b:3}; 
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16  this指向o 
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34  this指向o 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102929.html

相关文章

  • Javascript中callapply的理解

    摘要:剩下的两个,我们分别改变了他们的执行环境,分别指向了和,于是结果就是显示对象各自的值。如果你仍然对和没有清晰的认识,可以试着这样理解。 在Javascript中,每个函数都包含两个非继承而来的方法,call和apply。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内的this对象的值。摘自《JavaScript高级程序设计》 apply方法接收两个参数,第一个参数...

    mrcode 评论0 收藏0
  • javascript中call(),apply().bind()方法的作用异同

    摘要:原文章发表在的个人博客一细节中函数存在定义时上下文,运行时上下文上下文是可变的为改变某个函数运行时的上下文而存在的,换句话说,是为了改变函数内部的指向没有方法,但是有呀所以可以去把方法的运行时上下文也就是运行时的的指向,指向这个时候低啊用 原文章发表在 Klay-Clam的个人博客 一、细节 javascript 中函数存在定义时上下文,运行时上下文 上下文是可变的 1. call...

    Near_Li 评论0 收藏0
  • JavaScript 函数作用域、执行环境(this)、callapply、bind 的用法

    摘要:什么是函数的作用域函数作用域在中,作用域为可访问变量,对象,函数的集合。函数作用域作用域在函数内修改。与函数又有什么关系呢对象是在运行时基于函数的执行环境绑定的。 什么是函数的作用域 函数作用域:在 JavaScript 中,作用域为可访问变量,对象,函数的集合。JavaScript 函数作用域: 作用域在函数内修改。 this 与函数又有什么关系呢? this对象是在运行时基于函数的...

    1fe1se 评论0 收藏0
  • this总结【2】—— call/applybind

    摘要:和概览我们要将归为一类,单独归为一类三者的共同点是都可以指定和都是绑定在的原型上的,所以的实例都可以调用这三个方法至于为什么,看完这篇文章你就懂了如果你不懂什么是实例的话,请移步深入浅出面向对象和原型概念篇深入浅出面向对象和原型概念篇第一个 1.call/apply和bind概览 我们要将call/apply归为一类,bind单独归为一类 三者的共同点是都可以指定this call/...

    wudengzan 评论0 收藏0
  • 深入浅出JavaScript之call()、apply()方法

    摘要:的作用在中,方法和方法都是为了改变函数运行时上下文而存在的,换句话说就是为了改变函数体内部的指向。欢迎前端大牛纠正错误,如有错误我会及时改正。 写在前面: 隔了很长时间了,也不知道写点什么。最近一直在研究ES6,一直想写出来的文章能对初学者或者是在学习JS路上有所帮助的。这就是我的初衷。 call、apply的作用 在JavaScript中,call()方法和apply()方法都是为了...

    Cympros 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<