Foo.bar = () => { ... }
function Foo() { ... }
Foo.prototype.bar = () => { ... }
new Foo.bar(); (1)
new Foo().bar(); (2)
(1)可以理解为new (Foo.bar)()
(2)实际执行是(new Foo()).bar() =>这不符合运算符优先级规则啊 一元操作符<属性提取与调用函数操作符(. [] ())
Foo.bar = () => { ... }
function Foo() { ... }
Foo.prototype.bar = () => { ... }
new Foo.bar(); (1)
new Foo().bar(); (2)
(1)可以理解为new (Foo.bar)()
(2)实际执行是(new Foo()).bar() =>这不符合运算符优先级规则啊 一元操作符<属性提取与调用函数操作符(. [] ())
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
带参数列表的 new
new Foo()
跟成员访问.bar
是同个优先级,按左往右。不带参数列表的 new
new Foo
低一级。