练习的时候发现的问题,想不通
来源:5-6 箭头函数
慕后端6382265
2019-08-08 15:30:29
<script type="text/javascript">
function fg(){
this.xx = {
fn : ()=>{
console.log(this)
}
}
xx.fn()
}
fg() // 注释掉会报错,不注释会打印两条信息,这个调用fg()起了什么作用?
new fg()
</script>
这段代码中的fg()起了什么作用,为什么去掉会出错?不去掉就可以执行而且打印两条信息?希望老师可以帮忙解答
1回答
好帮手慕夭夭
2019-08-08
你好同学,解答如下:
1.直接执行fg,this指向window,此时xx存在,所以函数中能够调用到它。参考如下注释理解
2.当去掉fg()调用,此时只有一个实例化 new fg()。此时fg中的this指向的是实例化对象,即xx是实例化对象上的属性,直接在函数fg中调用不到,会报错哦。参考如下注释
祝学习愉快,望采纳。
相似问题