我在网上找js的this练习题做的时候,看到了这样几道题:
function fn() {
this.user = '剃了胡子"';
return {};
}
var a = new fn;
console.log(a.user);//undefined
function fn() {
this.user = '剃了胡子"';
return function () {};
}
var a = new fn;
console.log(a.user);//undefined
function fn() {
this.user = '剃了胡子"';
return 1;
}
var a = new fn;
console.log(a.user);//剃了胡子"
function fn() {
this.user = '剃了胡子"';
return undefined;
}
var a = new fn;
console.log(a.user);//剃了胡子"
function fn() {
this.user = '剃了胡子"';
return null;
}
var a = new fn;
console.log(a.user);//剃了胡子"
- 通过这几个例子的比较,发现在函数作为构造函数时,是忽略了除了对象和函数之外的其他返回值类型的。
- 当返回对象或者函数时,将取代new时隐式返回的this对象,而其他类型的返回值则不影响this的隐式返回。