代码如下functionFoo(){getName=function(){console.log(1);};returnthis;}Foo.getName=function(){console.log(2);}Foo.prototype.getName=function(){console.log(3);}vargetName=function(){console.log(4);};functiongetName(){console.log(5);}Foo.getName();//getName();//Foo().getName();//getName();//newFoo.getName();//newFoo().getName();//newnewFoo().getName();//现在想问的是newFoo()不是可以省略括号写成newFoo吗,为什么第5问和第6问结果不一样呢,还有最后一问直接不明白为啥结果是这样的,谢谢各位大神的不吝赐教
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
1、第5问和第6问结果不一样呢优先级不同newFoo.getName();就类似于new(Foo.getName)()newFoo().getName();类似于(newFoo()).getName()2、最后一问这样看就比较好理解了new((newFoo()).getName)()
添加回答
举报
0/150
提交
取消