慕雪1434180
2018-02-05 19:42
为什么var getX = module.getX;getX();的值是9?
this 指向看调用
涉及到js的内存空间问题
var getX = module.getX 相当于把module.getX存储下的一个匿名函数 引用 直接复制给了 getX
这时候调用getX相当于直接调用这个 匿名函数 自调用函数中的this非严格模式指向window
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深入浅出
281111 学习 · 1020 问题
相似问题