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

关于JS中的this指向问题

全局代码中调用this

全局代码中调用this,this都指向window对象,如果是nodejs 中this指向global

方法内部调用this

在方法内部调用this并不能马上获取this的指向,具体要看当前方法是如何调用的

调用方式调用示例this指向
通过new调用const obj = new Method()this 指向obj
直接调用function obj() { console.log(this) }this指向window
通过对象调用obj.fun = function() {console.log(this)}this指向调用对象 obj
通过callfun.call(this, ...args)用户手动设置
通过applyfun.apply(this, [...args])用户手动设置

调用示例:👇

const User = function() {
    console.log(this) // 指向 User {}
}
const user = new User()
function user() {
    console.log(this) // 指向 window
}
user()
const user = {
    name: '小妹',
    age: 18,
    sayHello: function() {
        console.log(this) // 指向user 
    }
}

user.hello()

const user = {
    name: '小妹',
    age: 18,
    sayHello: function() {
        console.log(this) // 指向window
    }
}

user.hello.call(this)
user.hello.apply(this)


http://www.kler.cn/a/453328.html

相关文章:

  • Xdebug
  • vue固定页面高度不出现滚动条
  • 每天40分玩转Django:Django缓存
  • 【微服务】整合Nacos注册中心和动态配置
  • Linux系统之tee命令的基本使用
  • Java获取自身被调用点
  • 【ES6复习笔记】Symbol 类型及其应用(9)
  • 前端学习DAY27(盒子模型内边距)
  • Idea 配置环境 更改Maven设置
  • Python爬虫获取1688详情接口详细解析
  • 红魔电竞PadPro平板解BL+ROOT权限-KernelSU+LSPosed框架支持
  • yum 查看已安装软件信息
  • 【无线通信】蜂窝系统——干扰与系统容量
  • 磁盘结构、访问时间、调度算法
  • 微信小程序给外面的view设置display:flex;后为什么无法给里面的view设置宽度
  • OVS简介
  • Elasticsearch-模糊查询
  • C语言学习(10)—递归
  • git回退指定版本/复制提交id
  • 【算法题解】Berland 路标限速问题(Follow Traffic Rules)