为什么new Foo().getName()是先执行new Foo()而不是先执行Foo().getName()

来源:7-2 一道函数考察基本功

Scny

2018-01-22

不是说点的优先级比new要高吗

写回答

3回答

快乐动起来呀

2018-01-23

同学可以看下官方资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence,详细讲述了运算符的优先级,new又分为带参和无参两种,尝试理解下,如果不能理解,再找我私聊哈,qq:706569906

0
3
假凤眼
回复
doing123
new 带参数和 . 是同级别的,既然同级别,我认为应该是按从左到右的顺序执行,所以就先执行new foo() 在执行 . 后面的代码
2018-03-13
共3条回复

Sappho

2018-04-22

我也觉得老师讲课过程中间有时会说些误导性的话,最好带上自己的理解。. 和new(带参数)的优先级是一样的,都是19,所以是从左到右执行

3
0

德系大75

2018-03-07

请问解决了吗?我也没搞懂啊

0
3
假凤眼
回复
德系大75
后来我看了一下new运算符,它后面必须跟着一个指定对象实例的类型的类或函数,所以new Foo()算一个整体;而new foo.getName(),其实是new function(){console.log(x)}();
2018-03-13
共3条回复

前端跳槽面试必备技巧 面试官全流程指导

一门让你能成功获取前端 Offer 的课程, 不只是技术,面试“技巧”也至关重要

4836 学习 · 830 问题

查看课程