先是题
附带了点解释。
解释:
先明白new操作符做了什么。 看专栏new的笔记。
第一个
Foo对象上的getName 所以是2
第二个
执行getName定义时的表达式。因为变量大于函数。
所以是4
第三个
Foo函数执行,所以全局变量getname指针改变,所以是1
第四个
由于定义getName函数的表达式只执行一次,所以 不会是4 然后由于getName方法是全局标量,是Foo()执行后的1。
第五个和第六个
new操作符的做得是更改this的指向, 因为构造函数Foo没有this.getName,所以实例也就没有私有属性getName,只能通过原型链去获取。