function fn(name){
this.name = name;
}
var a = new fn('123');
console.log(a.name); // yyy
//this碰到return时
function fn(name){
this.name = name;
return {}; // undefined
// return function(){}; //
// return undefined; // yyy
// return 1; // yyy
// return null // yyy
}
var a = new fn('yyy');
console.log(a.name); //undefined
如果返回值是一个对象,那么this指向的就是那个返回的对象,如果返回值不是一个对象那么this还是指向函数的实例。

本文探讨了JavaScript中函数内部this关键字的指向规则,特别是在函数返回不同类型的值时,this如何变化。当函数返回对象时,this指向该对象;反之,则指向函数实例。

被折叠的 条评论
为什么被折叠?



