Я просматривал код, написанный Дугласом Крокфордом.Он использует следующую структуру для создания объектов.
var obj = (function(){
var x, y, z; // These are private fields
// This is private method
function func1() {
}
return {
// This is public method
init : function() {
}
};
}());
Мне нравится этот способ в отличие от функций конструктора, как показано ниже.
function Obj() {
// Uses __ to denote private
this.__x = 0;
this.__y = 0;
this.__z = 0;
// Private method
this.__func1 = function() {
};
// Public method
this.init = function() {
}
}
var obj = new Obj();
Мне не нравится метод функции конструктора, каквам нужно использовать __ для обозначения приватных полей или методов (и это на самом деле не делает поле приватным), и вам нужно использовать это ключевое слово для доступа к любому полю или методу.Мне нравится первый метод, но я не знаю, как определить несколько объектов, используя его.
Можем ли мы определить несколько объектов в первом методе или его можно использовать только для создания одноэлементных объектов?