从零开始学习前端JAVASCRIPT — JavaScript中this指向的四种情况
JavaScript中this的四种情况(非严格模式)
1、当this所在函数是事件处理函数时,this指向事件源。
2、当this所在函数是构造函数时,this指向new出来的对象。
3、this所在函数的所属对象是谁,this指向函数所属对象。
4、当this所在函数没有所属对象,this指向window对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div id="box" class="box" style="height: 100px; width:100px; background:#f3f3f3;"></div>
</body>
</html> <script type="text/javascript">
//this
//1、当this所在函数是事件处理函数时,this是事件源。
document.getElementById("box").onclick = function(){
console.log(this); //this就是div.box
} //2、当this所在函数是构造函数时,this是new出来的对象。
function Person(name){
this.name = name;//this就是new出来的对象zhaosi
console.log(this.name)
this.eat = function(){
console.log(this.name+"is eatting");
}
}
var zhaosi = new Person("赵四"); // 3、this所在函数的所属对象是谁,this就是谁。
function Person(name){
this.name = name;//就是new出来的对象liuneng
this.eat = function(){
console.log(this.name+"is eatting");;//这个this是谁,谁调用eat,或者说调用eat时,前面的对象是谁,this就是谁
}
}
var liuneng = new Person("刘能");
liuneng.eat();//这句话执行时,eat函数内部的this就是p1
var laoqi = new Person("老七");
laoqi.eat();//这句话执行时,eat函数内部的this就是p2 //4、当this所在函数没有所属对象,this是window对象。全局变量都是window对象的属性。
function test(){
console.log(this);//这个this就是window
} test();//window对象可以省略,所以,这句话就等价于window.test(); //全局变量是window对象的属性
var t = "大脚"; console.log(window.t); var obj = {
name:"李四"
} console.log(window.obj.name); //this转移是经常碰到的问题
//1)、注意区分this所在函数调用时的隶属对象 //2)、如果不希望被this折磨可以选用ES6中的箭头函数。 </script>
从零开始学习前端JAVASCRIPT — JavaScript中this指向的四种情况的更多相关文章
- js中this指向的三种情况
js中this指向的几种情况一.全局作用域或者普通函数自执行中this指向全局对象window,普通函数的自执行会进行预编译,然后预编译this的指向是window //全局作用域 console.l ...
- Jquery 中Ajax使用的四种情况
<script type="text/javascript" language="javascript" src="JS/jquery-1[1] ...
- 对存在JavaScript隐式类型转换的四种情况的总结
一般存在四种情况,JavaScript会对变量的数据类型进行转换. 目录 * if中的条件会被自动转为Boolean类型 * 会被转为false的数据 * 会被转为true的数据 * 参与+运算都会被 ...
- 关于计算机学习的书(doc,mobi,epub,pdf四种格式)
关于计算机学习的书(doc,mobi,epub,pdf四种格式) <html> <body> <div> 21天学通C+ +2016/6/22 18:47文條 30 ...
- js中判断数据类型的四种方法总结
js中判断数据类型的四种方法 前言 在js中,我们经常需要判断数据的类型,那么哪些方法可以用来判断数据的类型呢?哪种方法判断数据类型最准确呢? 我们来一个个分析: 1.typeof typeof是一个 ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- JAVA中集合输出的四种方式
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- try catch finally 中包含return的几种情况,及返回结果
当当当,兴致勃勃的第二篇博客,散花~ 下面是正题(敲黑板) 第一种情况:在try和catch中有return,finally中没有return,且finally中没有对try或catch中要 retu ...
随机推荐
- Linux常用命令英文缩写
命令缩写: ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户 (ubuntu 使用管理员权限 是 sudo) rpm ...
- 【BZOJ】1260 [CQOI2007]涂色paint(区间dp)
题目 传送门:QWQ 分析 区间dp, 详见代码 代码 /************************************************************** Problem: ...
- IIS Worker Process 遇到了一个问题,需要关闭
服务器为2003系统,平时都用的好好的,但是最近经常跳出了!IIS Worker Process 遇到问题关闭! 第二个对话框还有个请单击此处的连接 以下文件将包含在这个错误报告中:C:\DOCUME ...
- C#Remoting
C# Remoting 细细品味C#——.Net Remoting专题 http://www.cnblogs.com/xia520pi/archive/2011/11/02/2233371.htm ...
- nginx作用
图解nginx作用:
- 查看Java文件对应的字节码
1. 编译为class文件:javac 2. 使用javap查看bytecode:javap -v
- linux 进程通信 :流套接字
消息队列是可以实现没有共同关系的进程之间的通信.Socket则可以实现不同计算机的不同进程之间的通信. //地址的结构体 struct sockaddr_in{ short int sin_famil ...
- mysql 随机查询 记录集
有时候需求需要随机从数据库查询若干条记录集,网上搜了一下,几篇博文都是些重复的.....不知道他们谁抄的谁的,这里除了介绍提供一种笔者自己想到的方法,本质都是利用mysql 的rand() 第一种方法 ...
- ffmpeg源码分析二:main函数和transcode函数 (转2)
原帖地址:http://blog.csdn.net/austinblog/article/details/24804455 首先从main函数看起,关键解释部分已加注释,该函数在ffmpeg.c文件中 ...
- popup non topmost
public class PopupNonTopmost : Popup { public static DependencyProperty TopmostProperty = Window.Top ...