问题:老师有一处问题没想明白:
红框处为何不是直接this[role]()赋值给s,而多加一个new调用this[role]这个内置函数体赋值给s?这两种写法的s输出结果相同,为什么多此一举呢?
代码:
登陆购买课程后可参与讨论,去登陆吧
同学你好,这两种写法结果是不一样的,new会将函数实例化为对象。例如:
不加new就是普通函数调用
函数没有返回值,结果为undefined
我们想要的是第一种结果,输出为对象。
祝学习愉快!
老师:那不加new打点调用时,函数中的this就是windon对象是吧,相当于在设置全局变量,所以没有返回结果是吧?
如果只是这里不加new
this[role]()中的this不是window对象,是UserFactory对象。因为满足if条件才会执行语句,this为实例化后的UserFactory对象。
普通函数调用想有返回结果,需要return手动返回才可以。不要弄混了。
明白了 谢谢老师
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
入行前端,是明智的选择!市场需求大,就业前景好,入行门槛低,小白易上手 全新升级:技术更新,Vue3.0/TypeScript/React17.x; 技术更全面,从0基础到全栈开发再到大型项目构建
157 1
75 1
31 2
200 5
155 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星