js函数this的指向

作者: EdmundChen | 来源:发表于2018-04-12 14:20 被阅读45次

箭头函数 (()=>{})

  • 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

function(){}

1. 非严格模式
  • 根据调用环境上下文确定
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <p>hello word</p>
</body>
<script type="text/javascript">
    function getName(){
        console.log('this', this);
    }

    getName() // window

    const a = {
                name: 'xxx'
        getName
    }
    a.b() // object a
</script>
</html>
  • 利用 apply, call, bind方法指定

详细看apply, call, bind方法

2. 严格模式

在严格模式下,未指定环境对象而调用函数,则this值不会转型为window。除非明确把函数添加到某个对象或者调用apply(),call(), bind,否则this值将是undefined

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <p>hello word</p>
</body>
<script type="text/javascript">
    'use strict'
    // 验证第一条剪头函数this指向
    const getName = () => { console.log(this) }
    getName() // window

    function getAge(){
        console.log('this', this);
    }
    getAge() // undefined
    const obj = {
                name: 'xxx',
                age: 32,
                getAge,
                getName
               }
    obj.getAge() // object a
    obj.getName() // window
</script>
</html>

相关文章

  • JavaScript中this使用

    JS中this指向 this在全局作用于下指向window 函数中使用的this指向: 函数在调用时,JavaSc...

  • js函数this的指向

    箭头函数 (()=>{}) 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。 functio...

  • js 匿名函数 this的指向问题

    js匿名函数的this通通指向window

  • 关于js函数中this的指向的问题

    @(javascript)[JavaScript中this的指向] 关于js函数中this的指向的问题 javas...

  • this

    this在js中主要研究的是函数中的this,不代表函数外没有this,函数外的this指向window js中的...

  • 关于js中this指向的那些事

    this是JS中的关键字,this的指向中函数定义时确定不了,只有 函数指向的时候才能确定this到底指向谁,th...

  • js构造函数this指向

    JS里没有类. 构造函数是个函数,this指向的是个对象,this蒙上眼睛指也指不到构造函数去. 构造函数的thi...

  • js中this问题小结

    在使用js中的this时,由于js的语法规则,this的指向是会改变的,js中的this指向是根据函数在执行时的作...

  • Reflux回调函数的坑

    this指向问题 刚开始一直报找不到completed函数,原因是js里this指向的问题 1.箭头函数的this...

  • js中的this

    目标:js中this的指向? 问题的引出 指出this指向什么 js中函数的三种调用形式 func(p1, p2)...

网友评论

    本文标题:js函数this的指向

    本文链接:https://www.haomeiwen.com/subject/fxixkftx.html