js高级学习笔记(b站尚硅谷)-7-函数中的this
一,this的概念
任何函数本质上都是通过某个对象来调用的,如果没有直接指定(那么就是window)
所有函数内部都有一个变量this
它的值是调用函数的当前对象
二,this的指向
- 以函数形式 直接调用时,this指向window
- 以方法的形式调用时,this指向调用方法的对象,谁调用就指向谁,
- 以构造函数的形式调用时,this指向新创建的对象
- 以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相关推荐
- [JS]JavaScript基础学习笔记(黑马pink+尚硅谷李立超)
文章目录
- JS高级学习笔记(6)- 事件循环
参考文章:深入理解JS引擎的执行机制 JavaScript 异步.栈.事件循环.任务队列 我的笔记:ES系列之Promise async 和 await Event Loop 前提 js ...
- Redis学习笔记(转尚硅谷周阳)
教学视频 Redis官网 Redis中文官网 一.NoSQL入门概述-上 1.互联网时代背景下大机遇,为什么用NoSQL 1.1.单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单 ...
- 燕十八老师 JS高级学习笔记 之作用域链
作用域 在JS中,函数嵌套是非常普遍的,在函数嵌套中:对变量是如何寻找的? 答: 首先在函数内寻找,寻找不到,则在外层寻找 ...直到..全局(window)区域. // 例子1var c=5;fun ...
- C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数
类的拷贝构造函数与赋值运算不同,拷贝构造函数是对这个类进行初始化的过程,而赋值是删除原有的东西,赋予它新的东西. 但是二者在实现上是互通的. template<class T> graph ...
- 尚学堂JAVA高级学习笔记_1/2
尚学堂JAVA高级学习笔记 文章目录 尚学堂JAVA高级学习笔记 写在前面 第1章 手写webserver 1. 灵魂反射 2. 高效解析xml 3. 解析webxml 4. 反射webxml 5. ...
- JavaWeb学习笔记(5)-B站尚硅谷
文章目录 十四.书城项目第三阶段--优化 (1)页面jsp动态化 (2)抽取页面中相同的内容 A.登录成功的菜单 B.base.css.jQuery标签 C.每个页面的页脚 D.manager模块的菜 ...
- JDBC学习笔记(1)---B站尚硅谷宋红康
JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...
- b站尚硅谷springmvc学习视频:springmvc文档
文章目录 一.SpringMVC简介 (b站尚硅谷springmvc学习视频:springmvc文档) 1.什么是MVC 2.什么是SpringMVC 3.SpringMVC的特点 二.HelloWo ...
- MySQL高级学习笔记(四)
文章目录 MySQL高级学习笔记(四) 1. MySql中常用工具 1.1 mysql 1.1.1 连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 ...
最新文章
- 干货!用 Python 快速构建神经网络
- ASP.netcore MVC钉钉H5微应用(二)鉴权
- pandas打乱行次序
- vts传感器采取船舶的_【火炬高企】船舶通讯导航设备专家新诺航科
- 深度好文:select与非阻塞IO
- ble之gatt server
- 正则表达式的简单认识
- Qt D-Bus类型系统
- mysql sql汇总查询将两个结果集合并一行展示
- Hadoop集群常用命令
- android kk界面旋转流程_【技术浅析】基于Android的五轴联动数控系统设计
- leetcode刷题日记-三个无重叠子数组的最大和
- 原来华为手机音量键这么厉害!除了调声音,还有5个隐藏功能
- php 快递鸟 批量打印,电子面单批量打印接口简易手册(快递鸟)
- 紫外线测光仪的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- python累乘怎么写_python实现累乘multi函数(函数参数不限)
- hdu4114.Disney's FastPass
- 看盘做短线的10种方法
- 0x0B-HackTheBox-Obscurity
- 计算机主板测评,9款主板特色设计对比
热门文章
- java点击菜单项弹出对话框_java怎么通过点击菜单弹出对话框
- BZOJ 1100 luogu 3454(计算几何+KMP)
- 实现Ajax异步的layui分页
- Asp.net Core 一个实用的自定义TagHelpers
- [HZAU]华中农业大学第四届程序设计大赛网络同步赛
- HAL层三类函数及其作用
- SDL2源码分析1:初始化(SDL_Init())
- putExtra方法
- java 创建消息队列_java - 在Java中动态创建异步消息队列 - 堆栈内存溢出
- Vmware报错 This product may not be installed on a computer that has Microsoft HyperV installed. 解决