1.this是什么?

谁调用当前函数或者方法, this就是谁

2.这三个方法的作用是什么?

这三个方法都是用于修改函数或者方法中的this

2.1.bind方法作用

修改函数或者方法中的this为指定的对象, 并且会返回一个修改之后的新函数

注意点: bind方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面

         function test(a, b) {console.log(a, b);console.log(this);}test(10, 20);window.test();let fn = test.bind(obj, 10, 20);fn();
     function Person() {this.name = "lnj";this.say = function () {console.log(this);}}let p = new Person();p.say();// bindlet fn = p.say.bind(obj);fn()

2.2.call方法作用

修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数

     function test(a, b) {console.log(a, b);console.log(this);}test.call(obj, 10, 20);
     function Person() {this.name = "lnj";this.say = function () {console.log(this);}}let p = new Person();p.say();// callp.say.call(obj);

注意点: call方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面

2.3.apply方法作用

修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数

注意点: apply方法除了可以修改this以外, 还可以传递参数, 只不过参数必须通过数组的方式传递

     function test(a, b) {console.log(a, b);console.log(this);}test.call(obj,[10, 20]);
     function Person() {this.name = "lnj";this.say = function () {console.log(this);}}let p = new Person();// p.say();// applyp.say.apply(obj);

JavaScript-bind-call-apply改变this指向相关推荐

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

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

  2. 深入理解this和call、bind、apply对this的影响及用法

    首先看一道网易的面试题: var a = {a:"haha",getA:function(){console.log(this.a);} } var b = {a:"he ...

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

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

  4. 如何改变this指向?

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

  5. Bind Call Apply(改变this指向)

    Bind & Call & Apply bind/call/apply三个方法都是可以改变对应函数的this指向的, bind方法通过该函数调用并且返回一个新的函数, 新的函数已经修改 ...

  6. Javascript中的apply、call、bind

    apply . call .bind 三者都是用来改变函数的this对象的指向的: apply . call .bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文: apply . ...

  7. JavaScript -- arguments、apply 、call、bind

    前言 笔记来源:JavaScript 高级程序设计 笔记内容:apply .call.bind 相同点与不同点 运行环境:浏览器环境 arguments ECMAScript 中的参数在内部是用一个数 ...

  8. JavaScript之call,bind,apply方法及 this 的用法辨析

    文章转自个人博客 https://knightyun.github.io/2019/05/01/js-call,转载请申明. 概述 JavaScript函数中的三个方法.call(), .apply( ...

  9. javaScript改变this指向的三种方法

    javaScript提供了一些函数方法帮助我们处理函数内部this的指向问题,常用的有bind().call().apply()三种方法 1.call() 方法调用一个对象.简单理解为调用函数的方式, ...

  10. 前端战五渣学JavaScript——call、apply以及bind

    写这篇博客之前,我想先说下今天(2019年3月28日)一直关注的一件事吧(出于凑热闹的心情--尴尬).在昨天,全球最大交友网站Github上悄然出现一个名为996.ICU的文档项目,整个项目没有代码, ...

最新文章

  1. 腾讯“科学探索奖”提名报名正式启动
  2. Android AIDL使用介绍(3) 浅说AIDL背后的Binder
  3. java 简单跳台阶和变态跳台阶
  4. 高性能服务器开发之C++定时器
  5. 非阻塞模式WinSock编程入门
  6. linux 系统一键安装 lnmp
  7. Python的安装(源码编译安装,IDE安装)
  8. security center启动类型更改不了_Word 启动缓慢解决方法
  9. Machine Learning——Homework4
  10. 九九乘法表(c语言)
  11. 深入浅出MySql索引
  12. 【笔记整理】通信原理第二章复习——随机信号分析
  13. EDA设计流程是怎样的,看完这篇文章就知道了
  14. 编程程序_PLC编程代码PLC程序设计公司
  15. java info()方法_Java中的提供者getInfo()方法
  16. 常见的分布期望及其方差
  17. 工具应用——Chrome浏览器 F12控制台中文改成英文
  18. 认知能力训练系统--提升6大认知能力
  19. 2015年中国云计算市场回顾与展望
  20. 文件扫描-TWAIN,WIA,ISIS,SANE

热门文章

  1. L1-035 情人节(两种方法)
  2. 门店定位怎么在地图上显示_怎么在百度地图上面显示自己店面的地址,
  3. Tomcat 优化和性能监测
  4. php中一个字符占用几个字节?
  5. html设置在父元素底部对齐,如何将div对齐到父元素的底部
  6. Java - 泛型 ( Generic )
  7. 该行已经属于另一个表 的解决方法
  8. mysql对所有id求积_MySQL学习笔记(二)—查询
  9. Vivado入门创建工程之----流水灯
  10. vs 2017 建立 php,WIN10系统下OSG+VS2017或者vs2019环境搭建