侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

JavaScript中call()与apply()的区别

2024-05-08 星期三 / 0 评论 / 0 点赞 / 60 阅读 / 1491 字

JavaScript函数,事实上是对象,他们均有两个亲儿子(非继承而来的方法),它们就是call()和apply()。 call()和apply()在函数中扮演者什么样的角色呢? 它们俩其实是一对

        JavaScript函数,事实上是对象,他们均有两个亲儿子(非继承而来的方法),它们就是call()和apply()。

        call()和apply()在函数中扮演者什么样的角色呢?

        它们俩其实是一对双胞胎,功能是一样一样的,都是在特定的作用域中调用函数,就等于设置函数体中this对象的值。但是,双胞胎也并不是一模一样的,它们也有各自的性格特点嘛。

        call()可以传多个参数,第一个参数是一个对象,后面的参数就是该函数的参数。

        apply()最多只能传两个参数,第一个参数是一个对象,第二个参数是该函数参数组成的数组,也可以是arguments对象。

 

举个栗子:

var age = 0;var zhangsan= {    name: "张三",    age: 18};function getAge(){    return this.age;}function add(a,b){    this.age = a+b;    return a+b;}console.log(getAge());  //  0console.log(getAge.call(zhangsan));  //  18console.log(add.apply(zhangsan,[2,3]));   //  5

 

广告 广告

评论区