美文网首页
箭头函数和普通函数中this的区别

箭头函数和普通函数中this的区别

作者: 飞牛在天 | 来源:发表于2019-08-17 20:27 被阅读0次

    // 文件demo.js

    this.name = 'lisi'
    const say = () => {
    console.log(this.name)
    }

    global.name = 'wangwu'
    const say2 = function() {
    console.log(this.name)
    }

    function Person(name, age) {
    this.name = name
    this.age = age
    this.say = function() {
    console.log(this.name)
    say()
    say2()
    }
    }

    let p = new Person('zhangsan', 18)

    let x = p.say
    p.say()
    console.log('-------')
    x()

    //以上代码,执行node demo.js
    结果:

    zhangsan
    lisi
    ligang


    wangwu
    lisi
    wangwu

    //箭头函数中,this指的是定义箭头函数时的this对象,而不是运行时的this对象
    //普通函数中的this,调用次函数的owner对象(nodejs环境下是global,浏览器下是window),比如全局函数中this指的是全局global对象或window对象,通过对象调用普通函数,那么普通函数中的this指的是对象本身

    相关文章

      网友评论

          本文标题:箭头函数和普通函数中this的区别

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