如何从构造函数内部返回构造函数中的对象?
function consFunc() {
this.flag = 'someFlag';
this.pol = 'somePole';
}
consFunc.prototype.foo = function(){
console.log(this.flag);
}
var obj = new consFunc();
obj.foo();
这是我通常用构造函数创建对象的方式。如何从构造函数内部返回对象,所以我不需要编写var obj = new consFunc();
我只需要根据需要调用obj.foo();
,是否可能?
答案 0 :(得分:1)
如果你想拥有一个带有简单功能的对象,你可以简单地写
var consObj = {
flag: 'someFlag',
pol: 'somePole',
foo: function() { console.log( this.flag ); }
}
consObj.foo() // 'someFlag'
答案 1 :(得分:0)
您可以将构造函数包装在另一个函数中,并从该函数返回new consFunc();
:
function obj() {
function consFunc() {
this.flag = 'someFlag';
this.pol = 'somePole';
}
consFunc.prototype.foo = function () {
console.log(this.flag);
}
return new consFunc();
}
// now use it
obj().foo()

答案 2 :(得分:0)
如果你需要某种单身人士:
var obj = (function (){
var flag = 'someFlag';
var pol = 'somePole';
function foo(){
console.log(flag);
}
return {
foo: foo
};
})();
obj.foo();