Javascript 创建单个对象

Javascript 创建单个对象,javascript,singleton,new-operator,instance,Javascript,Singleton,New Operator,Instance,我想创建一个对象。下面的代码有意义吗 singleObj = new function () { // act as a constructor. }; 我伤害了任何良好的实践吗 我需要一个构造函数。一个简单的对象文字在这里是没有用的。如果你只想要一个对象,因为你永远也不会再创建一个对象,那么对象文字在这里就非常有用 var x = { }; 将给你一个对象。 为了 var F = function() { }; 要给您一个对象,您需要调用F var x = new F(); 你

我想创建一个对象。下面的代码有意义吗

singleObj = new function () {
    // act as a constructor.
};
我伤害了任何良好的实践吗


我需要一个构造函数。一个简单的对象文字在这里是没有用的。

如果你只想要一个对象,因为你永远也不会再创建一个对象,那么对象文字在这里就非常有用

var x = { };
将给你一个对象。 为了

var F = function() {
};
要给您一个对象,您需要调用
F

var x = new F();

你可以尝试以下方法:

var objCreate = function() {
    var obj = {};
    // do constructor logic
    return obj;
};

只需创建一个新对象,然后填充它。你不需要一个控制器来做这件事

var singleObject = {};
singleObject.value1 = "whatever";
如果你真的想使用一个函数,那么你需要实际调用它

var singleObj = new (function () {
    // act as a constructor.
})();
我们可以通过创建一个匿名函数
function(){}
,并立即使用一个空参数集调用它来使用一个自执行函数


也许是重复的问题:为什么你认为你需要一个没有自定义原型的构造函数?@katspaugh——如果是这样的话,他需要的是模式,而不是使用
新的
操作符。@thom——我知道你的回答对你来说是解释性的,但从外部看,它只是循环的。为什么你需要一个构造函数,特别是对于一个单体来说?@thom:你应该停止重复这个。声明您“需要”您已经决定的东西将是您的实现,这无助于我们理解您为什么决定这样做。“为什么需要构造函数?”“因为我需要一个构造函数”,它不是自动执行的,除非它是一个自相矛盾的函数。当
new
“直接调用”函数时,不能传入参数。我建议的表格可以。如果不需要对构造函数进行参数化,那么调用这两种调用形式都没有意义。自执行函数通常用于通过创建新名称空间(闭包)来控制名称空间污染。本质上,它们用于创建一组在函数末尾消失的变量。局部变量在任何函数返回时都会自杀,因此这不是对术语“自动执行”的有效解释。
//Used to create an object
personObj=new Object();
personObj.firstname="John";
personObj.lastname="Doe";
personObj.age=50;
personObj.eyecolor="blue";

//Used as a constructor for the object
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
//how to declare objects via constructor template
var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");