练习的时候发现的问题,想不通

来源: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存在,所以函数中能够调用到它。参考如下注释理解

http://img.mukewang.com/climg/5d4be7a6000167bc06890461.jpg

2.当去掉fg()调用,此时只有一个实例化 new fg()。此时fg中的this指向的是实例化对象,即xx是实例化对象上的属性,直接在函数fg中调用不到,会报错哦。参考如下注释

http://img.mukewang.com/climg/5d4be928000103e307430436.jpg

祝学习愉快,望采纳。

0

0 学习 · 10739 问题

查看课程