为了账号安全,请及时绑定邮箱和手机立即绑定

var getX = module.getX;getX();

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

正在回答

3 回答

this 指向看调用

0 回复 有任何疑惑可以回复我~

涉及到js的内存空间问题 

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

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

1 回复 有任何疑惑可以回复我~
#1

慕村9107202

我也是这么认为的
2018-03-15 回复 有任何疑惑可以回复我~
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


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

var getX = module.getX;getX();

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信