目录

  • this指向的不同场景:
    • 一、普通函数调用
    • 二、定时器函数
    • 三、构造函数调用
    • 四、对象方法调用
    • 五、原型对象调用
  • 总结

this指向的不同场景:

一、普通函数调用

普通函数中的this是谁?===>window

   function f1() {console.log(this);//window}f1();

严格模式下的普通函数中的this?

   "use strict";//严格模式function f1() {console.log(this);}f1();//undefinedwindow.f1(); //==>window//严格模式下调用函数,它会认为函数就是方法//方法通过对象调用,你的对象没写

二、定时器函数

   window.setInterval(function () {console.log(this); //window},1000);

三、构造函数调用

     function Person(){console.log(this);//Person==>实例对象}var per=new Person();console.log(per);

四、对象方法调用

     function Person(){console.log(this);//Person==>实例对象this.sayHi=function () {console.log(this);//Person==>当前实例对象};}var per=new Person();console.log(per);per.sayHi();

五、原型对象调用

 function Person(){console.log(this);//Person==>实例对象this.sayHi=function () {console.log(this);//Person==>实例对象};}Person.prototype.eat=function () {console.log(this);//Person==>实例对象};var per=new Person();console.log(per);per.sayHi();per.eat();

总结

本章总结了js中经常见到的this指向问题,汇总如下表:

调用方式 非严格模式 备注事项
普通函数 window 严格模式下是undefined
定时器函数 window
构造函数 实例对象
对象方法 该方法所属对象 临近的对象
原型对象方法 实例对象
事件绑定方法 绑定事件对象

以上。

前端学习辑录(2):JS中this指向的问题相关推荐

  1. JavaScript面向对象(一)——JS OOP基础与JS 中This指向详解

    前  言 学过程序语言的都知道,我们的程序语言进化是从"面向机器".到"面向过程".再到"面向对象"一步步的发展而来.类似于汇编语言这样的面 ...

  2. 【Node学习】—Node.js中模块化开发的规范

    [Node学习]-Node.js中模块化开发的规范 Node.js 规定一个JavaScript就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到 模块化内部可以使用exports对象进行 ...

  3. 前端学习笔记(js基础知识)

    前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...

  4. 好程序员web前端学习路线分享css3中的渐进增强和降级

    好程序员web前端学习路线分享css3中的渐进增强和降级,渐进增强和降级这两个概念是在 CSS3 出现之后火起来的.由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器 ...

  5. 前端学习辑录(1):js继承总结

    js中的继承 一.原型继承 二.借用构造函数继承 三.组合继承 四.组合继承的优化 五.拷贝继承 总结 这是博主目前学习并掌握到的继承方式,并不能完整覆盖到所有的继承方式,会在学习中持续更新ヾ(◍°∇ ...

  6. 前端基础知识点:JS中的参数传递详解

    JS语法中的传递参数,对于初学者是一个非常重要的概念.很多小伙伴在学习"值传递"和"引用传递"时,会有不少烦恼.今天我们就来通过各种姿势全方位剖析JS中的值传递 ...

  7. 中高级前端必须了解的--JS中的内存管理

    前言 像C语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()用于分配内存和释放内存. 而对于JavaScript来说,会在创建变量(对象,字符串等)时分配内存,并且在不 ...

  8. 前端学习笔记——node.js

    初识 Node.js 什么是 Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 中的 JavaScript 运行环境 注意: 浏 ...

  9. 关于js中this指向复习

    简单说this指向 谁调用指向谁 1.对象.方法() 中,方法中的this指向的就是对象 2.普通函数中的 this 指向window,这是因为 window 是JS中的顶级对象,可以通过window ...

最新文章

  1. java设计模式---装饰器模式
  2. COSCon'21 参会指南 你想要的这里都有
  3. c语言锐龙,AMD官方:锐龙5000抗热可以达到95°C 没问题!
  4. Java工作笔记-使用Maven创建多模块项目
  5. c语言 学习手册,c语言学习手册
  6. golang-thrift 使用hbase教程
  7. DLP Digital Light Procession 的缩写 数字光处理
  8. 如何理解刑法中的“以非法占有为目的”
  9. js 判断图片和视频是否加载成功
  10. Codeforces 760B Frodo and pillows【贪心+二分】
  11. SolidWorks to URDF转换及常见机器人模型
  12. java redis expire 1_redis 下key的过期时间详解 :expire
  13. C# 实现Excel单元格画边框
  14. JSP连接数据库实现注册登录(附带上传头像)
  15. SOCKS代理的定义
  16. 配置maven及其换源
  17. 为什么无法评估计算机体验指数,无法更新windows体验指数怎么办
  18. 简仪USB101—数据采集助手集锦
  19. 炎炎夏日-恩墨小王子带你玩转“数据卫士”Data Guard
  20. 华为nova6计算机,教大家华为nova6 5G手机怎么使用Huawei Share来连接电脑传输文件方法...

热门文章

  1. UCloud上市后的新苦海:净利一路下坡
  2. 中国中高端猪肉行业监测与投资前景研究报告(2021版)
  3. 自制《要塞:十字军东征》无限金钱修改器
  4. 什么是 WordPress Gutenberg 编辑器?
  5. 【区块链 | DAPP】Dapp应该怎么开发?分享一篇Dapp开发的逻辑(分享) 更新中~
  6. 小萌新的python进阶之路(一)
  7. Android RecyclerView 吸顶效果(一)
  8. 23年找工作的心酸历程
  9. 【iOS开发-119】ipa打包、单元测试test、本地通知UILocalNotification
  10. 随着滚动条下拉,导航栏置顶