this指向_前端必须知道的this指向问题
this是指JavaScript语言的一个关键字。在函数运行时,自动生成一个内部对象,只能在函数内部中使用。随着函数使用场合的不同,this的值也会发生变化,指向是不确定的。指向是可以改变的。不过有一个总的规则,this指的是调用函数的那个对象(谁调用的,this就是指向的谁)。
一:普通的函数。在普通的函数中使用的this是指window,可以理解为没有调用者
function fun1(){ console.log(this);};fun1(); // output:window对象
二:不过需要的注意的地方,如果局部函数内使用严格模式的话,所获取到的this就是undefined
function fun(){ "use strict"; // 使用了严格模式 console.log(this); // output:undefined};fun();
三、回调函数(一个函数作为参数被传递给另外一个函数,就可以理解为回调函数)
function test(v){ console.log(this);};function f2(callback,v){ callback(v);};f2(test,'hello'); // output:window//等同于f2(function(v){console.log(v)},'hello');
2.回调函数第二个使用场景
var arr = [1,2,3,4,5,6].filter(function(item,index){ console.log(this); // output:window})
四:this存在数组里面
function f3(){ console.log(this);};var arr = [f3,4,5,6];arr[0](); // output [ƒ, 4, 5, 6] notice:输出的是调用者本身
不过需要注意的地方
function f2(){ console.log(this);};var arr2 = [f2,4,5,6];var f = arr2[0];f();
五:this在对象object上
var obj = { say:function(){ console.log(this);}};obj.say(); // output: {say: ƒ}
六:在构造函数中,所指的this不是构造函数本身
function Fun(name,age){ this.name = name; this.age = age; this.action = function(){console.log(this)}};var fun2 = new Fun("wanguiping",19);fun2.action(); // output: Fun {name: "wanguiping", age: 19, action: ƒ}
下一篇介绍this指向的改变和绑定!
this指向_前端必须知道的this指向问题相关推荐
- dbeaver 设置编码_初学者必须知道的idea设置
初学者必须知道的idea设置 解决输入法卡住的问题 使用idea的时候中文搜狗输入法会卡住,在安装路径下有两个jre文件夹,32位系统改jre32,64位系统改jre64,重命名一下文件夹就好了. 修 ...
- 学习_你必须知道的.net2_第四章_一切从IL开始
IL体验中心: 1: .class表示是一个类 ; .public表示访问权限 ; auto表示程序加载时内存由CLR决定的,而不是程序本身 .ansi实现托管与非托管代码的无缝转换: . ...
- xcode 快捷_您必须知道的Xcode快捷方式
xcode 快捷 Knowing the Xcode shortcuts would improve your speed and boost your productivity. Today, we ...
- java泛型常用特点_?你必须知道的Java泛型
前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin3923282... 种一棵树最好的时间是十年前,其次是现在 我知道很多人不玩qq了,但是怀旧一下,欢 ...
- 统计各部门的薪水总和_你必须知道的SAP中统计指标设置和应用
第一节统计指标 统计指标是指反映总体现象数量特征的概念.它包括三个构成要素:指标名称,计量单位,计算方法,统计指标通常用来做分配分摊系数依据. 图1-[1]:手工计划创建统计指标计划格式的配置. 图1 ...
- 二叉树的字符图形显示程序_每个程序员都必须知道的8种通用数据结构
作者:IT-Evan https://www.cnblogs.com/IT-Evan/p/12444968.html 数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操 ...
- 精确的数据访问冲突_每个程序员都必须知道的8种通用数据结构
快速介绍8种常用数据结构 数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作. 数据结构在计算机科学和软件工程领域具有广泛而多样的用途. 几乎所有已开发的程序或软件系 ...
- c 多文件全局变量_必须知道的C语言知识细节:C程序编译后内存到底是如何布局...
「今天是学习C语言第 116 天」 当你选择了一种语言,意味着你还选择了一组技术.一个社区.--Joshua Bloch C语言程序编译以后,代码和数据都必须存放在内存中由CPU执行.理解C程序内存是 ...
- [转]做网站必须知道的4个基本常识和小窍门
转自:超赞!做网站必须知道的4个基本常识和小窍门 很多同学只会设计网站,但是却不知道整个建站的流程.域名.空间.备案等等.互联网时代,长点基本网建知识和小窍门,是必须的.所谓知己知彼,方能百战不殆.今 ...
最新文章
- [文档].Altera – SOPC Builder组件开发攻略
- Leetcode: Intersection of Two Arrays
- python 获取文件列表
- 数据库的使用你可能忽略了这些 (续)
- 工业以太网交换机故障的排障步骤
- 新手上路之django项目开发(二)-----引入静态文件
- 永中向香港博览会主办方演示云办公(转载)
- Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法[转]
- acm 3278(poj4001)
- python 读取并显示图片,用plt 同时显示多幅图像
- 【RLchina第四讲】Model-Based Reinforcement Learning
- 批量下载GLDAS数据
- MathType删除注册表
- 儿童计算机编程竞赛,一年获全国少儿编程比赛一等奖,他是怎么做到的?
- 微信商户中查看 appid
- 统计数组中英文大写字母,小写字母,数字,空格的个数。
- 新浪微博技术分享:微博短视频服务的优化实践之路
- 海洋cms php环境 多少,海洋cms
- 2023年软考时间流程安排:
- c# 无法检索解密密钥_使用C#检索Windows产品密钥
热门文章
- 要成为linux网站运维工程师必须要掌握的技能
- WCF中的REST是什么
- 一步一个脚印学习WCF系列之WCF概要—WCF与SOA(二)
- [Z]在线版本控制之SubVersion与MyEclipse整合
- mysql 绿色安装 ubuntu_Ubuntu免安装配置MySQL
- linux下虚拟光驱,求助:谁有Linux下的虚拟光驱软件?
- 天 月_财务结算专业术语快来学习!月结和月结30天的区别
- 火狐marquee_火狐不支持marquee解决方案
- python创建一个空的dataframe_python - 创建一个空的Pandas DataFrame,然后填充它?
- 2021-秋招你准备好了吗?软件测试面试题