美文网首页
js中apply()和call()的区别

js中apply()和call()的区别

作者: 南山码僧 | 来源:发表于2019-11-18 15:43 被阅读0次

语法:

apply(obj, arguments[]);  

call(obj, param_1, param_2, ..., param_n);

①:obj代表被调用函数指向的上下文环境, 特别说明 当obj为null时指向的是全局global

②:arguments[]和param_1, param_2, ..., param_n代表被调用函数的参数

简述:

这两个方法都属于js中Function.prototype上的方法,它是JavaScript引擎内在实现的。也就是说每一个function函数都都具有这两个方法。

作用:

都是改变被调用函数的上下文环境

如:

function People(name, age) {

    this.name= name;

    this.age= age;

}

function Student(name, age, grade) {

    People.call(this, name, age);

    this.grade= grade;

}

let student = new Student('小明', 21, '大三');

console.log(student.name+ student.age+ student.grade);

将People的上下文环境指向了Student

区别:

两者的参数类型不一样,

① ~ call接收的是单个参数对象

② ~ apply接受的是参数数组 

妙用:

let arr = [1, 2, 3, 4, 5];

Math.max.apply(null, arr);

Math.min.apply(null, arr);

相关文章

  • js中方法继承

    call 和 apply JS中的call()和apply()方法

  • JavaScript中call与apply的作用

    JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别。 对于JS手册中call的...

  • call apply

    js基础知识---call,apply,bind的用法 call,apply详解 javascript中,call...

  • this_原型链_继承

    问题1: apply、call 、bind有什么作用,什么区别 在JavaScript中, call和apply都...

  • this_原型链_继承

    问题1: apply、call 、bind有什么作用,什么区别? apply和call call apply,调用...

  • bind()和call()和apply()的区别

    bind()和call()和apply()的区别 首先说说call()和apply()的区别 它们都是改变this...

  • 面向对象继承中call和apply

    .apply()用法和call()的区别 Js apply方法详解我在一开始看到javascript的函数appl...

  • call apply bind 区别

    javascript中apply、call和bind的区别 在JS中,这三者都是用来改变函数的this对象的指向的...

  • 2019-12-16

    javascript中apply、call和bind的区别 在JS中,这三者都是用来改变函数的this对象的指向的...

  • javascript中apply、call和bind的区别

    javascript中apply、call和bind的区别 在JS中,这三者都是用来改变函数的this对象的指向的...

网友评论

      本文标题:js中apply()和call()的区别

      本文链接:https://www.haomeiwen.com/subject/pnhbictx.html