javascript this(上)
javascript的this指向的是一个函数运行时动态绑定对象。
this的4种常见的指向:
作为对象的方法调用
var obj={
name:"姚小白",
getName:function(){
console.log(this === obj);
console.log(this.name)
}
}
obj.getName();
//true
//姚小白
函数被作为一个对象调用,所以this的指向了obj对象。
作为普通函数调用
在普通函数中,this指向的全局对象,也就是window对象。
var name = "姚小白";
var getName = function(){
return this.name;
}
console.log(getName()) //姚小白
var name = "姚小白";
var obj = {
name:"July",
getName:function(){
return this.name;
}
}
console.log(obj.getName()) //July
var name1 = obj.getName;
console.log(name1()) //姚小白
console.log(obj.name) //July
console.log(this.name) //姚小白
在这个函数中,因为函数作用域的关系。当我们打印obj.getName();的时候,function(){return this.name;} //July
而在外层时候调用的则是 //姚小白
在一些事件函数内部,如果还有一个普通函数调用。在那个函数内部会出现this指向window。所以建议在事件内部中的函数建议先将变量定义保存,如(var _this = this)
在ES5的严格模式(use strict)中this不会指向全局对象,返回的是undefined;
javascript this(上)的更多相关文章
- 几款极好的 JavaScript 文件上传插件
文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...
- JavaScript返回上一页代码区别
JavaScript返回上一页代码区别: window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:win ...
- 【精心推荐】几款极好的 JavaScript 文件上传插件
文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...
- AGS API for JavaScript 图表上地图
原文:AGS API for JavaScript 图表上地图 图1 图2 图3 -------------------------------------华丽丽的分割线--------------- ...
- JavaScript: 世界上最被误解的语言|Douglas Crockford
JavaScript: 世界上最被误解的语言 JavaScript: The Wrrrld's Most Misunderstood Programming Language Douglas Croc ...
- jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题
jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互.特效.小部件及主题.无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery ...
- JavaScript返回上一页和返回上一级页面并刷新
JavaScript返回上一页和刷新当前页 window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:wi ...
- atitit.javascript js 上传文件的本地预览
atitit.javascript js 上传文件的本地预览 1. .URL.createObjectURL 1 1.1. 吊销所有使用 URL.createObjectURL 而创建的 URL,以 ...
- Javascript 返回上一页:选中GridVIew的 Chekcbox
1. 选中GridVIew的值 $("#reverse").click(function () { //$("#checkbox[Num]").attr(&q ...
- 《你不知道的JavaScript(上)》笔记——提升
笔记摘自:<你不知道的JavaScript(上)>第3章 提升 1.包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理. 2.变量和函数声明从它们在代码中出现的位置被“移动”到了 ...
随机推荐
- 1050. [HAOI2006]旅行【并查集+枚举】
Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径上最 ...
- lvm xfs 扩容
lvresize -L 300M /dev/vg1/lv1 #重新设定大小 e2fsck -f /dev/vg1/lv1 #检查磁盘错误 (针对ext4执行) resize2fs /dev/vg1/l ...
- 模拟器配置Burpsuite抓取https包
在模拟器中设置代理,长按WiredSSID会弹出菜单: 点击修改网络: 显示高级选项打勾,然后设置代理ip,也就是你运行burp的机器ip: 然后导出burp的证书: 设置保存的路径和文件名: 模拟器 ...
- 初识Qt简单动画
Qt提供了类QPropertyAnimation来实现图片的一些简单的动画操作效果. 1.新建一个Qt空项目,同时添加资源文件,并在资源文件中添加图片路径.之后在main.cpp函数中添加以下代码 # ...
- highcharts柱状图实现legend和数据列一一对应效果
var cate = ['Green', 'Pink']; Highcharts.chart('container', { chart: { type: 'column' }, legend: { e ...
- 利用SimpleDateFormat进行时间的跨时区转换 - Java
* 次方法主要用来将特定时区的时间转换成指定时区的时间,比如将北京时间“2018-04-08 15:40:49.031”,转换对应的美国东部时间是“2018-04-08 03:40:49.031” ...
- P1481 魔族密码
题目描述 风之子刚走进他的考场,就…… 花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花) 风之子:我呕……(杀死人的眼神)快说题目!否则……-_-### 花花:……咦好冷我们现在 ...
- Debian 8 安装 Qt5 和 go-qml
一.安装相关依赖 ~ ᐅ sudo apt-get install build-essential libgl1-mesa-dev ~ ᐅ sudo apt-get install qt5-defau ...
- 【绝密】为什么现在的CAN收发器通信距离越来越短?
[绝密]为什么现在的CAN收发器通信距离越来越短? CAN收发器的改良和隔离器件引入,大大提高了通信的可靠性,但同时也引入了额外的延时,导致通信距离变短,或总线错误帧增加,本文以1Mbps波特率下 ...
- Map的复制
Map的复制不可以直接使用=赋值 Map<String,Object> map1 = new HashMap<String,Object>(); Map<String,O ...