一,this的概念

任何函数本质上都是通过某个对象来调用的,如果没有直接指定(那么就是window)
所有函数内部都有一个变量this
它的值是调用函数的当前对象

二,this的指向

  1. 以函数形式 直接调用时,this指向window
  2. 以方法的形式调用时,this指向调用方法的对象,谁调用就指向谁,
  3. 以构造函数的形式调用时,this指向新创建的对象
  4. 以call和apply调用时,this指向其指定的首参对象
         function Person(color){console.log(this);this.color=color;this.getColor=function(){console.log(this);return this.color;};this.setColor=function(color){console.log(this);this.color=color;};}Person("red");  //this指向windowvar p=new Person("yello");  //this指向Pp.getColor();    // this指向pvar obj={};p.setColor.call(obj,"red");  //this指向 obj(也就是obj调用setcolor)var test=p.setColor;test();            //this指向window

三,硬绑定的三个方法(this指向首参对象)

 * call()/apply()是立即调用函数* bind()是将函数返回,并没有调用,想要立即执行还需要加一个()

js高级学习笔记(b站尚硅谷)-7-函数中的this相关推荐

  1. [JS]JavaScript基础学习笔记(黑马pink+尚硅谷李立超)

    文章目录

  2. JS高级学习笔记(6)- 事件循环

    参考文章:深入理解JS引擎的执行机制        JavaScript 异步.栈.事件循环.任务队列 我的笔记:ES系列之Promise async 和 await Event Loop 前提 js ...

  3. Redis学习笔记(转尚硅谷周阳)

    教学视频 Redis官网 Redis中文官网 一.NoSQL入门概述-上 1.互联网时代背景下大机遇,为什么用NoSQL 1.1.单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单 ...

  4. 燕十八老师 JS高级学习笔记 之作用域链

    作用域 在JS中,函数嵌套是非常普遍的,在函数嵌套中:对变量是如何寻找的? 答: 首先在函数内寻找,寻找不到,则在外层寻找 ...直到..全局(window)区域. // 例子1var c=5;fun ...

  5. C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数

    类的拷贝构造函数与赋值运算不同,拷贝构造函数是对这个类进行初始化的过程,而赋值是删除原有的东西,赋予它新的东西. 但是二者在实现上是互通的. template<class T> graph ...

  6. 尚学堂JAVA高级学习笔记_1/2

    尚学堂JAVA高级学习笔记 文章目录 尚学堂JAVA高级学习笔记 写在前面 第1章 手写webserver 1. 灵魂反射 2. 高效解析xml 3. 解析webxml 4. 反射webxml 5. ...

  7. JavaWeb学习笔记(5)-B站尚硅谷

    文章目录 十四.书城项目第三阶段--优化 (1)页面jsp动态化 (2)抽取页面中相同的内容 A.登录成功的菜单 B.base.css.jQuery标签 C.每个页面的页脚 D.manager模块的菜 ...

  8. JDBC学习笔记(1)---B站尚硅谷宋红康

    JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...

  9. b站尚硅谷springmvc学习视频:springmvc文档

    文章目录 一.SpringMVC简介 (b站尚硅谷springmvc学习视频:springmvc文档) 1.什么是MVC 2.什么是SpringMVC 3.SpringMVC的特点 二.HelloWo ...

  10. MySQL高级学习笔记(四)

    文章目录 MySQL高级学习笔记(四) 1. MySql中常用工具 1.1 mysql 1.1.1 连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 ...

最新文章

  1. 干货!用 Python 快速构建神经网络
  2. ASP.netcore MVC钉钉H5微应用(二)鉴权
  3. pandas打乱行次序
  4. vts传感器采取船舶的_【火炬高企】船舶通讯导航设备专家新诺航科
  5. 深度好文:select与非阻塞IO
  6. ble之gatt server
  7. 正则表达式的简单认识
  8. Qt D-Bus类型系统
  9. mysql sql汇总查询将两个结果集合并一行展示
  10. Hadoop集群常用命令
  11. android kk界面旋转流程_【技术浅析】基于Android的五轴联动数控系统设计
  12. leetcode刷题日记-三个无重叠子数组的最大和
  13. 原来华为手机音量键这么厉害!除了调声音,还有5个隐藏功能
  14. php 快递鸟 批量打印,电子面单批量打印接口简易手册(快递鸟)
  15. 紫外线测光仪的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. python累乘怎么写_python实现累乘multi函数(函数参数不限)
  17. hdu4114.Disney's FastPass
  18. 看盘做短线的10种方法
  19. 0x0B-HackTheBox-Obscurity
  20. 计算机主板测评,9款主板特色设计对比

热门文章

  1. java点击菜单项弹出对话框_java怎么通过点击菜单弹出对话框
  2. BZOJ 1100 luogu 3454(计算几何+KMP)
  3. 实现Ajax异步的layui分页
  4. Asp.net Core 一个实用的自定义TagHelpers
  5. [HZAU]华中农业大学第四届程序设计大赛网络同步赛
  6. HAL层三类函数及其作用
  7. SDL2源码分析1:初始化(SDL_Init())
  8. putExtra方法
  9. java 创建消息队列_java - 在Java中动态创建异步消息队列 - 堆栈内存溢出
  10. Vmware报错 This product may not be installed on a computer that has Microsoft HyperV installed. 解决