一、call 方法
基本用法

function test() {console.log('hello world');
}
test(); // hello world
test.call(); // hello world
// test() ==> test.call()

其实就是借用别人的方法,来实现自己的功能

function Person(name, age) {// this == objthis.name = name;this.age = age;
}var obj = {};var person = new Person();
Person.call(obj, 'mary', 18); // 让 obj 也拥有构造函数的方法

call 的根本作用就是改变 this 指向,第一个参数就是 this 的指向

小案例

function Student(name, age, sex) {this.name = name;this.age = age;this.sex = sex;
}function Color(red, blue, pink) {this.red = red;this.blue = blue;this.pink = pink;
}function Model(height, width, len) {this.height = height;this.width = width;this.len = len;
}function Car(name, age, sex, red, blue, pink, height, width, len) {// var this = {//     // };Student.call(this, name, age, sex);Color.call(this, red, blue, pink);Model.call(this, height, width, len);
}var car = new Car('mary', 18, 'female', 'red', 'blue', 'pink', 175, 75, 175);

二、apply 方法

function Student(name, age, sex) {this.name = name;this.age = age;this.sex = sex;
}function Color(red, blue, pink) {this.red = red;this.blue = blue;this.pink = pink;
}function Model(height, width, len) {this.height = height;this.width = width;this.len = len;
}function Car(name, age, sex, red, blue, pink, height, width, len) {// var this = {//     // };Student.apply(this, [name, age, sex]);Color.apply(this, [red, blue, pink]);Model.call(this, height, width, len);
}var car = new Car('mary', 18, 'female', 'red', 'blue', 'pink', 175, 75, 175);
  1. call 需要把实参按照形参的个数传进去
  2. apply 需要传一个 arguments 实参列表
[].slice.call(arguments) -- 能将具有 length 属性的对象转换为数组

三、总结

call / apply 都是改变 this 指向,区别就是传参列表不同

改变 this 指向的 call 和 apply相关推荐

  1. 2022前端面经---改变this指向问题(call、apply、bind)

    CSDN话题挑战赛第2期 参赛话题:面试宝典 ✅ 作者简介:一名迈入大三的大学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页

  2. 函数的this指向,call,apply bind改变this指向

    函数在定义的时候不会影响它的this指向,只有在调用的时候选择不同的调用方式,才会决定你this指向何处. 在独立函数调用的时候,this指向window,在调用挂载在window的函数时,前面的wi ...

  3. js 改变this指向的几种方法(个人学习笔记)

    1.call()和apply() 两中方法都能改变this指向,很类似,区别主要是第二个以后参数, call():第一个参数表示要把this指向的新目标,第二个之后的参数其实相当于传参,参数以,隔开  ...

  4. this指向及改变this指向的方法

    原先总结过this指向问题,但看了大佬们写的之后,觉得自己遗漏了很多点,所以,结合大佬们的,重写一遍 一.函数的调用方式决定了 this 的指向不同: 1.普通函数调用,此时 this 指向 wind ...

  5. this指向和如何改变this指向 (详解)

    注:颜色标识为重要字眼.  目录:-this详解            -改变this指向的方法 一.this概述 它是JS的关键词,是一个代词"指代不明",需要代码执行过程中根据 ...

  6. JavaScript - this指向以及强行改变this指向

    this 指向 -官方:指当前代码执行的上下文环境(context) -私人: 就是一个使用在作用域内(全局 / 函数内)的关键字 全局作用域 this ->在全局作用域内,this就是wind ...

  7. 前端改变this指向的方法有哪些?如何判断this指向?

    bind.call.apply.箭头函数.new.这些都可以改变this指向,他们之间的区别是 1.call 和 apply 的this指向 call 和 apply其实是一样的,区别在于传参的时候参 ...

  8. 如何改变this指向?

    如何改变this指向? 在接触this指向问题,相信很多同学都面临this指向的问题,有些时候我们在对象方法内部使用this.而并不想让this指向当前本对象,这时候该怎么办呢?答案就是改变this指 ...

  9. this指向 改变this指向

    1:全局下的 this 指向window 2:函数中的this 谁调用指向谁 3:事件处理函数中 this 谁触发指向谁 4:对象中this 默认指向当前对象 5:箭头函数中无this 但是如果箭头函 ...

最新文章

  1. 4g8核支持多少php进程,服务器8核16g内存,同时有1000多人在抢红包,有502怎么办?...
  2. MATLAB Simulink 做BP PID报错:Error :*** during flag=* call must be a real vector of length 3
  3. 幕课网产品总监:教你从0到1打造600W下载量的爆款APP
  4. 在Python Shell中输入print 'hello'总是报语法错误
  5. 前端学习(3024):vue+element今日头条管理-关于默认子路由的问题
  6. html:(39):块级元素和内联块级元素
  7. random_shuffle 和transform算法
  8. linux socat rpm,RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)
  9. h3c 虚拟服务器 下一跳,H3C vLNS系列虚拟L2TP网络服务器 配置指导-E0324-5W100
  10. 嵌入式电路设计(soc底板电路设计)
  11. BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
  12. Java 简单TCP文件传输
  13. aspectjweaver.jar 下载地址
  14. pandas库与numpy库
  15. 用计算机求a的平方根的顺序,算术平方根练习题
  16. c语言海明校验码编码,海明校验码的编码规则有哪些?
  17. win10动态壁纸怎么设置_酷狗也能设置动态壁纸???
  18. Warring:POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line
  19. Win10添加、删除鼠标右击的选项(快捷方法)
  20. 如何检测磁石玩具的磁通量指数

热门文章

  1. java map key 大写转小写_Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?(转)...
  2. python遍历二维数组_在Python中遍历二维数组?
  3. 什么是负边沿触发_用好示波器必须学会的知识:触发方式
  4. scala中创建时间序列_如何从Scala中的序列中提取唯一元素?
  5. C++中友元函数,友元类数详解
  6. python 多线程 popen ping指定IP是否在线 判断连通
  7. 手把手带你玩转Tensorflow 物体检测 API (2)——数据准备
  8. c++11特性move和forward区别
  9. java面向对象基础代码_JAVA基础知识点之Java面向对象
  10. 牺牲阳极计算机安装标准储罐,钢质储罐阴极保护牺牲阳极保护方法与设计安装...