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(上)的更多相关文章

  1. 几款极好的 JavaScript 文件上传插件

    文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...

  2. JavaScript返回上一页代码区别

    JavaScript返回上一页代码区别: window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:win ...

  3. 【精心推荐】几款极好的 JavaScript 文件上传插件

    文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...

  4. AGS API for JavaScript 图表上地图

    原文:AGS API for JavaScript 图表上地图 图1 图2 图3 -------------------------------------华丽丽的分割线--------------- ...

  5. JavaScript: 世界上最被误解的语言|Douglas Crockford

    JavaScript: 世界上最被误解的语言 JavaScript: The Wrrrld's Most Misunderstood Programming Language Douglas Croc ...

  6. jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题

    jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互.特效.小部件及主题.无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery ...

  7. JavaScript返回上一页和返回上一级页面并刷新

    JavaScript返回上一页和刷新当前页 window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:wi ...

  8. atitit.javascript js 上传文件的本地预览

    atitit.javascript js 上传文件的本地预览 1. .URL.createObjectURL  1 1.1. 吊销所有使用 URL.createObjectURL 而创建的 URL,以 ...

  9. Javascript 返回上一页:选中GridVIew的 Chekcbox

    1.  选中GridVIew的值 $("#reverse").click(function () { //$("#checkbox[Num]").attr(&q ...

  10. 《你不知道的JavaScript(上)》笔记——提升

    笔记摘自:<你不知道的JavaScript(上)>第3章 提升 1.包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理. 2.变量和函数声明从它们在代码中出现的位置被“移动”到了 ...

随机推荐

  1. angularjs中URL中的#号问题,$locationProvider.html5Mode(true)刷新404

    解决办法原文地址:https://blog.csdn.net/weixin_36185028/article/details/72179568 angularjs支持两种url模式,hash模式和ht ...

  2. Linux - Confluence搭建

    0. 摘要 Confluence自身携带内置数据库,对于生产环境建议搭建外置数据库,Confluence通过相应驱动连接上.并操作数据库.Confluence支持多种数据库,本文采用MySQL. 1. ...

  3. Js 面向对象之封装,继承,原型,原型链

    封装 ,继承 ,原型, 原型链 封装 ? 面向对象有三大特性,封装.继承和多态.对于ES5来说,没有class(类)的概念,并且由于JS的函数级作用域(函数内部的变量在函数外访问不到),所以我们就可以 ...

  4. jQuery.fn.extend()

    jQuery.fn.extend() extend()方法是定义在jQuery构造函数的prototype对象上面的一个方法,这样做就能使得所有jQuery对象的实例都能共享这个方法.jQuery构造 ...

  5. Connection reset原因分析和解决方案

    在使用HttpClient调用后台resetful服务时,“Connection reset”是一个比较常见的问题,有同学跟我私信说被这个问题困扰很久了,今天就来分析下,希望能帮到大家.例如我们线上的 ...

  6. python操作数据库(Mysql)

    原文地址:https://www.cnblogs.com/R-bear/p/7022231.html python DB-API介绍 1.python标准数据库接口为 python DB-API,py ...

  7. Python基本知识3----序列

    前言: 序列:列表/元组/字符串 3种序列的共同点: 都可以通过索引得到每一个元素 默认索引值从0开始(还支持负数) 都可以通过切片的方式得到范围内的元素的集合 有很多共同的操作符(重复操作符.拼接操 ...

  8. Oracle(二)SELECT语句执行顺序

    转载自:小强斋太-Study Notes,原文链接 从join on和where执行顺序认识T-SQL查询处理执行顺序 目录 一.样例 二.SELECT语句的处理过程 1. FROM阶段 2. WHE ...

  9. (转)添加Template(模板)并基于模板部署应用

    通过Template,可以定义一个或多个需要部署的镜像,定义依赖的对象,定义可供用户输入的配置参数项. 以cakephp-mysql.json为例. # oc create -f https://ra ...

  10. 学习JavaSE 数组

    一维数组 基本概念 1.数组中只允许放同一种类型(可以是父子关系). 2.数组即对象. 例: int[ ] arrs={0,1,2};//arrs即一个对象. 3.数组是定长的,不可以增加或者减少. ...