当前位置: 首页 > news >正文

2017.3.13笔记 this指向

this指向是js中的要点,要掌握好。一句话,函数执行时,this指向调用者,若没有调用者,具有全局性,指向window

this一般分为如下情况:

   1 obj.fn() 调用时 指向obj 例如
            var obj = {

           name:"Mike",

           sayName : function(){

              alert(this.name)

           }
                }

      obj.sayName();  this指向调用者obj

      像document.getElementById("tel"),该方法的实现中利用了this(指向document),该方法是在document上找id等于tel的元素。

      如果采取 var getId = document.getElementById;

              getId("tel")  

      此时的this会指向window,不是指向document,然鹅在window上是不能用改取id的方式的(window是要把tel当做变量的window.tel)。

  2   构造函数的this

    如下 function Animal(name){

        this.name = name;

      }    //this 是 new Animal构造函数的时候,指向构造出来的实例。

      Animal.prototype.bite = function(){

        alert(this.name);

      }  

       var cat = new Animal("cat")

      cat.bite(); 指向调用者cat

  3

     var demo = document.getElementById("demo");

   demo.onclick = function(){
      alert(this.id);

   } 

   实际情况是点击demo的时候,触发了demo的click事件执行即(demo.click()) ,很显然,this指向demo 

  可以发现,1 ,2, 3  实际是一类情况

  4

   var demo = document.getElementById("demo");

   demo.onclick = function(){
      alert(this.id); // this 指向demo

      var fn = function(){

        alert(this.id); // 指向window

      }

      fn();

   } 

  此示例中普通函数fn(没有调用者的函数)具有全局性,执行时this指向window

  

转载于:https://www.cnblogs.com/FineDay/articles/6547019.html

相关文章:

  • 国内又出一个开源网店系统,值得期待...
  • ASP.NET页面解析(3)
  • 2.3 Junit 安装
  • 集成中国
  • JAVA之继承和多态
  • 剖析:为何很多人成了QQ隐身族[转载]
  • J2SE5.0中的注释特性
  • Maven 启动找不到 Launcher 的问题
  • LDD6410 开发板完全开发手册1——LDD6410硬软件特性
  • jenkins安装配置
  • NHibernate+Oracle 遇到ORA-01461和ORA-01084及解决方法
  • 深入分析java web技术内幕----读书笔记(三)
  • 关于印发《天津市2010年节能与资源综合利用 清洁生产和环保产业工作要点》的通知...
  • java类加载器的父亲委托机制详细介绍
  • Linux裸设备相关命令
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 2019年如何成为全栈工程师?
  • ECMAScript入门(七)--Module语法
  • input的行数自动增减
  • JS数组方法汇总
  • Just for fun——迅速写完快速排序
  • STAR法则
  • underscore源码剖析之整体架构
  • Vue 重置组件到初始状态
  • Vue.js源码(2):初探List Rendering
  • 安装python包到指定虚拟环境
  • 讲清楚之javascript作用域
  • 开发基于以太坊智能合约的DApp
  • 浏览器缓存机制分析
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 突破自己的技术思维
  • 用Canvas画一棵二叉树
  • 在weex里面使用chart图表
  • 自制字幕遮挡器
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • #DBA杂记1
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (2)Java 简介
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (笔试题)合法字符串
  • (第27天)Oracle 数据泵转换分区表
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .jks文件(JAVA KeyStore)
  • .NET NPOI导出Excel详解
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net 流——流的类型体系简单介绍
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境