JavaScript-bind-call-apply改变this指向
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指向相关推荐
- 函数的this指向,call,apply bind改变this指向
函数在定义的时候不会影响它的this指向,只有在调用的时候选择不同的调用方式,才会决定你this指向何处. 在独立函数调用的时候,this指向window,在调用挂载在window的函数时,前面的wi ...
- 深入理解this和call、bind、apply对this的影响及用法
首先看一道网易的面试题: var a = {a:"haha",getA:function(){console.log(this.a);} } var b = {a:"he ...
- 前端改变this指向的方法有哪些?如何判断this指向?
bind.call.apply.箭头函数.new.这些都可以改变this指向,他们之间的区别是 1.call 和 apply 的this指向 call 和 apply其实是一样的,区别在于传参的时候参 ...
- 如何改变this指向?
如何改变this指向? 在接触this指向问题,相信很多同学都面临this指向的问题,有些时候我们在对象方法内部使用this.而并不想让this指向当前本对象,这时候该怎么办呢?答案就是改变this指 ...
- Bind Call Apply(改变this指向)
Bind & Call & Apply bind/call/apply三个方法都是可以改变对应函数的this指向的, bind方法通过该函数调用并且返回一个新的函数, 新的函数已经修改 ...
- Javascript中的apply、call、bind
apply . call .bind 三者都是用来改变函数的this对象的指向的: apply . call .bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文: apply . ...
- JavaScript -- arguments、apply 、call、bind
前言 笔记来源:JavaScript 高级程序设计 笔记内容:apply .call.bind 相同点与不同点 运行环境:浏览器环境 arguments ECMAScript 中的参数在内部是用一个数 ...
- JavaScript之call,bind,apply方法及 this 的用法辨析
文章转自个人博客 https://knightyun.github.io/2019/05/01/js-call,转载请申明. 概述 JavaScript函数中的三个方法.call(), .apply( ...
- javaScript改变this指向的三种方法
javaScript提供了一些函数方法帮助我们处理函数内部this的指向问题,常用的有bind().call().apply()三种方法 1.call() 方法调用一个对象.简单理解为调用函数的方式, ...
- 前端战五渣学JavaScript——call、apply以及bind
写这篇博客之前,我想先说下今天(2019年3月28日)一直关注的一件事吧(出于凑热闹的心情--尴尬).在昨天,全球最大交友网站Github上悄然出现一个名为996.ICU的文档项目,整个项目没有代码, ...
最新文章
- 腾讯“科学探索奖”提名报名正式启动
- Android AIDL使用介绍(3) 浅说AIDL背后的Binder
- java 简单跳台阶和变态跳台阶
- 高性能服务器开发之C++定时器
- 非阻塞模式WinSock编程入门
- linux 系统一键安装 lnmp
- Python的安装(源码编译安装,IDE安装)
- security center启动类型更改不了_Word 启动缓慢解决方法
- Machine Learning——Homework4
- 九九乘法表(c语言)
- 深入浅出MySql索引
- 【笔记整理】通信原理第二章复习——随机信号分析
- EDA设计流程是怎样的,看完这篇文章就知道了
- 编程程序_PLC编程代码PLC程序设计公司
- java info()方法_Java中的提供者getInfo()方法
- 常见的分布期望及其方差
- 工具应用——Chrome浏览器 F12控制台中文改成英文
- 认知能力训练系统--提升6大认知能力
- 2015年中国云计算市场回顾与展望
- 文件扫描-TWAIN,WIA,ISIS,SANE