当this碰到return时
function fn(params) { this.user = 'fzy' return {} } var a = new fn console.log(a.user)//undefined function fn2(params) { this.user = 'fzy' return function(){} } var b = new fn2 console.log(b.user) //undefined function fn3(){ this.user = 'fzy' return undefined } var c = new fn3 console.log(c.user)//fzy
如果返回值是一个对象,那么this指向的就是那个返回的对象,如果返回值不是一个对象那马this还是指向函数的实例。
特殊情况,null也是对象,但是在这里this还是指向那个函数的实例,因为null比较特殊
function fn4() { this.user = 'fzy' return null } var d = new fn4 console.log(d.user) //fzy