其他同学问题中的疑问
https://class.imooc.com/course/qadetail/144266
这个问题里老师也没有回答,其他同学回答的链接里也没有解释原因。
那位同学发的链接中说逗号运算是返回右边的结果,等号运算和逗号运算一样,那这四个情况不应该都是执行的console.log(inner.func());吗?怎么它们的结果不一样呢?
30
收起
正在回答
2回答
同学你好,问题解答如下:
1、逗号运算符返回后一段表达式结果,这里inner.func没有调用,所以返回的是整个函数体
加上括号也就是这样调用的:
(function() {var out = 30;return this.out;})();
匿名函数自执行,也就是window对象调用的,所以返回this.out值为25。
2、等号运算也是一样的,这样输出的是运算过后的返回值
和上面一样同样是函数体
然后匿名函数自执行,this指向window,输出this.out值为25 。这两个相当于返回值执行,运算过后的返回值再计算,记住这种方式就好。
3、inner.func()是inner对象调用的,所以值为20
4、(inner.func)()括号里面没有运算符 ,自己调用自己,js执行时直接引用它的指向 , 相当于inner.func(),所以值为20 。
祝学习愉快!
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星