Создать отдельный объект - PullRequest
       24

Создать отдельный объект

2 голосов
/ 12 августа 2011

Я хочу создать один объект.Имеет ли смысл приведенный ниже код?

singleObj = new function () {
    // act as a constructor.
};

Мне больно от любой хорошей практики?

Мне нужен конструктор.Простой литерал объекта здесь не будет полезен.

Ответы [ 4 ]

1 голос
/ 12 августа 2011

Если вам нужен только один объект, в котором вы никогда не собираетесь создавать его снова, литерал объекта здесь отлично работает.Чтобы

var F = function() {
};

дал вам объект, вам нужно вызвать F

var x = new F();
0 голосов
/ 12 августа 2011

http://www.w3schools.com/js/js_objects.asp

//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");
0 голосов
/ 12 августа 2011

Просто создайте новый объект, а затем заполните его. Вам не нужен компрессор, чтобы сделать это.

var singleObject = {};
singleObject.value1 = "whatever";

Если вы действительно хотите использовать функцию, вам нужно ее вызвать.

var singleObj = new (function () {
    // act as a constructor.
})();

Мы можем использовать самовыполняющуюся функцию, создав анонимную функцию function(){} и немедленно вызвав ее с пустым набором аргументов.

0 голосов
/ 12 августа 2011

Вы можете попробовать что-то вроде:

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