问答详情
源自:6-4 [JavaScript]函数属性arguments

var getX = module.getX;getX();

为什么var getX = module.getX;getX();的值是9?

提问者:慕雪1434180 2018-02-05 19:42

个回答

  • 陪我去看海吧
    2020-10-30 11:22:06

    this 指向看调用

  • 慕姐7171273
    2018-02-26 11:43:49

    涉及到js的内存空间问题 

    var getX = module.getX 相当于把module.getX存储下的一个匿名函数 引用 直接复制给了 getX 

    这时候调用getX相当于直接调用这个 匿名函数 自调用函数中的this非严格模式指向window

  • hj1212
    2018-02-06 00:14:02

    var foo = {getX: function() {console.log(this.x)}}
    var a = foo.getX
    console.log(a) // function (){console.log(this.x)} 把函数赋值给了a,并未执行
    var x = 1 //定义一个全局变量,console.log(x,window.x)
    // this默认指向window
    a() // 1 
    //var b = foo.getX.bind({x: 100})
    var b = a.bind({x: 100})
    // 改变this 指向 {x: 100}这个对象
    b() // 100