function Foo() {
getName = function () {
console.log( 1 )
}
return this
}
Foo.prototype.getName = function() { console.log( 3 ) }
new Foo().getName( ) // 3
关于以上代码,有2个问题。
第一,关于优先级:
成员访问的优先级高于new(带参数列表)。
所以不应该是等于new ( Foo( ).getName( ) )么?这样的话,答案应该是1吧?
第二,关于new返回值的问题。
如果使用new关键字的时候,有return,且return后面是一个对象的话,返回这个对象,而不是new后的实例。
上面的题中,return this,this是指向的是window,是一个对象,所以new Foo( ).getName( )中,调用的getName函数是全局函数,返回的值应该不是1么?
麻烦老师,帮忙解决一下技术难题,万分感谢。