function f1(){
console.log("inside f1");
this.a = 2;
};
var x1 = f1(); => inside f1
x1; => undefined
var x1 = new f1(); => inside f1
x1; => f1 {a: 2}
当f1有返回值时,
function f2(){
console.log("inside f2");
this.b = 2;
return { c :3 };
};
var x1 = f2(); => inside f2
x1; => Object {c: 3}
var x1 = new f2(); => inside f2
x1; => Object {c: 3}
在这种情况下如何访问b?
答案 0 :(得分:4)
通过new调用构造函数将创建一个新对象,并且this
关键字将被分配给这个新对象,最后它默认返回新对象。
但是,如果明确使用return,则可以覆盖此新对象。
答案 1 :(得分:0)
关键字“new”首先返回自定义对象。所以请尝试以下代码,PLZ ..
function f2(){
console.log("inside f2");
this.b = 2;
return [ this, { c :3 }];
};
var x1 = new f2();
你可以像这样访问它..
x1[0].b
答案 2 :(得分:-2)
如果你正在使用jQuery,也许可以使用' $.extend()'添加返回的对象。
f2变为:
function f2(){
this.b = 2;
$.extend(this, { c: 3 });
};
然后:
new f2() => { b: 2, c: 3 }