文字解释:

一、this的理解:

this:是"这个"的意思,是代名词,代名词代表的意思要根据场景或情景决定。

你,我,他,这个,那个,都是代名词。
       当有人说,"我在吃饭"时,那这个“我”是谁呢,就必须要看这句话是谁说的,谁说的,我就是谁,即“我”会根据说话的人变化而变化

二、JavaScript中this的四种情况(this是函数的内置对象,所以,只能出现在函数内部)

1、当this所在函数是事件处理函数时,this是事件源。
2、当this所在函数是构造函数时,this是new出来的对象。
3、this所在函数的所属对象是谁,this就是谁。
4、当this所在函数没有所属对象,this是window对象

三、this的转移问题
       当有人说,"我在吃饭"时,那这个“我”是谁呢,就必须要看这句话是谁说的,谁说的,我就是谁,即“我”会根据说话的人变化而变化

this转移的意思也是这个意思,this是哪个对象,需要看看this所在函数的所属对象。

代码解释:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title></head><body></body>
</html><script type="text/javascript">
//this
//1、当this所在函数是事件处理函数时,this是事件源。
//document.getElementById("btn").onclick = function(){
//  this就是btn
//}//2、当this所在函数是构造函数时,this是new出来的对象。
//function Person(name){
//  this.name = name;//就是new出来的对象p1
//  this.eat = function(){
//      alert(this.name+"在吃");
//  }
//}
//var p1 = new Person("王雨");//3、this所在函数的所属对象是谁,this就是谁。
//function Person(name){
//  this.name = name;//就是new出来的对象p1
//  this.eat = function(){
//      alert(this.name+"在吃");//这个this是谁,谁调用eat,或者说调用eat时,前面的对象是谁,this就是谁
//  }
//}
//var p1 = new Person("王雨");
//p1.eat();//这句话执行时,eat函数内部的this就是p1
//var p2 = new Person("王雨点");
//p2.eat();//这句话执行时,eat函数内部的this就是p2//4、当this所在函数没有所属对象,this是window对象。//其实啊,全局变量都是window对象的属性。
function test(){console.log(this);//这个this就是window
}//test();//window对象可以省略,所以,这句话就等价于window.test();
//window.test();//全局变量是window对象的属性
var t = "王雨";console.log(window.t);var obj = {name:"张鼎",sex:"男"
}console.log(window.obj.name);//this转移是我们会碰到的问题?
//1)、如何区分this
//  一定要看清楚this所在函数调用时的隶属对象()//2)、如果不希望被this折磨
//  可以选用ES6中的箭头函数。</script>

javascript_this的理解相关推荐

  1. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  2. stream流对象的理解及使用

    我的理解:用stream流式处理数据,将数据用一个一个方法去 . (点,即调用) 得到新的数据结果,可以一步达成. 有多种方式生成 Stream Source: 从 Collection 和数组 Co ...

  3. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

  4. java局部变量全局变量,实例变量的理解

    java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...

  5. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  6. 熵,交叉熵,散度理解较为清晰

    20210511 https://blog.csdn.net/qq_35455503/article/details/105714287 交叉熵和散度 自己给自己编码肯定是最小的 其他的编码都会比这个 ...

  7. mapreduce理解_大数据

    map:对不同的数据进行同种操作 reduce:按keys 把数据规约到一起 看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop 与MapReduce的整体有所了解了. [前言 ...

  8. 文件句柄和文件描述符的区别和理解指针

    句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数,Windows使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等.Windows句柄有点象C语言中的文件句柄. ...

  9. 通俗理解条件熵-数学

    就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...

  10. 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积

    20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...

最新文章

  1. VS2010单元测试入门实践教程
  2. c++学习笔记(3)
  3. Yoshua Bengio等大神传授:26条深度学习经验
  4. 【leetcode❤python】 9. Palindrome Number
  5. 判断深度学习模型的稳定性_全自动搭建定制化深度学习模型
  6. Spring AOP中的前置通知和后置通知详解
  7. java中list、set和map 实例
  8. Java 字符串使用之性能优化实践
  9. More Accurate Question Answering on Freebase阅读笔记
  10. 3D模型欣赏:短发美女,小恶魔
  11. 《UnityAPI.GameObject游戏对象》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+isStatic+SendMessage+Find+立钻哥哥++OK++)
  12. 入门推荐系统,这25篇综述文章足够了
  13. Halcon 自动对焦算法
  14. 【数据库内核】数据库核心技术演进之路
  15. 讲一点有技术含量的东西(一)
  16. 云原生Java架构师——KubeSphere DevOps流水线部署RuoyiCloud
  17. 2021最近的新闻大事10条简短 今天的新闻大事10条汇总
  18. 流水线“厂哥”的华丽转变!小程序带动就业超500万人
  19. HDFS 分布式文件系统的搭建与使用
  20. linux 链路聚合

热门文章

  1. python pyplot 宽高等比_python – 更改matplotlib中子图的宽高比
  2. apache2部署访问yaaw
  3. 文件夹批量重命名编号的快速方法
  4. C#office的0x8002801D或者0x80029C4A问题
  5. apkg格式怎么打开_pdf怎么转换成word?妙招在手,转换不愁!
  6. 天地不仁,以万物为刍狗!
  7. 高德sdk android加载3857,GCJ02-Correct
  8. html页面睡眠函数,JavaScript sleep睡眠函数
  9. css背景透明度影响字体--实现背景透明字体不透明
  10. ip ,子网掩码, 网关 ,主机位数,网络位数,子网数