var getX = module.getX;getX();

来源:6-4 [JavaScript]函数属性arguments

慕雪1434180

2018-02-05 19:42

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

写回答 关注

3回答

  • 陪我去看海吧
    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

    慕村9107...

    我也是这么认为的

    2018-03-15 10:30:48

    共 1 条回复 >

  • 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


JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281111 学习 · 1020 问题

查看课程

相似问题