| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> this的指向问题 -> 正文阅读 |
|
[JavaScript知识库]this的指向问题 |
js 中的 this 指向十分重要,在我们的工作和面试中也会时常遇到,倒是对this,总是不太了解,今天我来带大家系统的了解和学习一下。 一、this的指向this 总是(非严格模式下)指向一个对象,而具体指向哪个对象是在运行时基于函数的 this的指向大体分为以下几种情况: 1、全局作用域和普通函数调用,此时 this 指向 window当函数不作为对象的属性被调用,而是以普通函数的方式,this总是指向全局对象(在浏览器中,通常是Window对象)
2、方法调用中谁调用 this 指向谁?(1)、构造函数调用, 此时 this 指向 实例对象当函数作为对象的方法被调用时,
(2)、对象方法调用, 此时 this 指向 该方法所属的对象当对象内的方法调用时,this指向该对象
(3)、通过事件绑定的方法, 此时 this 指向 绑定事件的对象当时事件绑定方法时,this指向绑定的方法
3、构造器调用
4、箭头函数中指向外层作用域的 this箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。
5、call或apply调用跟普通的函数调用相比,用call和apply可以动态的改变函数的this
?6、补充有一点需要注意的是定时器函数, 此时 this 指向 window
二、call、apply和bind我们先来看看call和apply方法的例子
从中我们可以看出来,call和apply的作用都是改变this的指向,似乎没有什么差距,事实上也的确如此,他们的差距很小,也可以实现切换,但是他们之间还是有一些细小的差距的,接下来我们来看看他们之间的差距 call()和apply()的区别
在所有(非箭头)函数中都可以通过arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,它本身就是一个类数组,我们apply在实际使用中更常见一些。 call是包装在apply上面的语法糖,如果我们明确的知道参数数量,并且希望展示它们,可以使用call。 当使用call或者apply的时候,如果我们传入的第一个参数为null,函数体内的this会默认指向宿主对象,在浏览器中则是window。
bind()方法
? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:49:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |