Я строю систему с деталями, похожими на этот вопрос: Могу ли я иметь разные копии статической переменной для каждого другого типа наследуемого класса
Кроме того, что в JavaScript!
У меня будет набор подклассов.У каждого подкласса будет много экземпляров, созданных из него в течение жизни программы.Каждый экземпляр определенного подкласса будет иметь разные значения, за исключением файла, который является общим для всех.Я не хочу, чтобы у каждого экземпляра была копия.Я хочу, чтобы это было статично (одна копия для всех).Каждый отдельный подкласс использует другой файл.Я хочу, чтобы каждый подкласс наследовал ФАКТ, что он имеет файл из суперкласса.
РЕДАКТИРОВАТЬ: Краткое резюме:
цель: создать класс, которыйконструктор, который создает определение подкласса, допуская переменную: - появляется в каждом подклассе - уникален для конкретного подкласса - используется всеми экземплярами определенного подкласса (одна копия для всех)
Попыткаиллюстрируя это в коде:
var instance1ofSubclass1 = {
staticVar:"SAMEVAL_1", // For brevity I'm showing how staticVar is
// the same. It's notsupposed to be public.
uniqueVar:"adsfasdf"
};
var instance2ofSubclass1 = {
staticVar:"SAMEVAL_1",
uniqueVar:"zxbvczbxc"
};
var instance3ofSubclass1 = {
staticVar:"SAMEVAL_1",
uniqueVar:"qwrtytry"
};
var instance1ofSubclass2 = {
staticVar:"SAMEVAL_2", //<--notice the static var is different
// between subclasses
uniqueVar:"oipoiuu"
};
var instance2ofSubclass2 = {
staticVar:"SAMEVAL_2",
uniqueVar:"hljkhlj"
};
var instance3ofSubclass2 = {
staticVar:"SAMEVAL_2",
uniqueVar:"bnmbmbmnm"
};
Мои определения классов могут пойти так:
var subclass1 = (function () {
var staticVar = "SAMEVAL_1"
return function (unique) {
return {
uniqueVar:unique
};
};
}());
var subclass2 = (function () {
var staticVar = "SAMEVAL_2" //<-- different static variable
return function (unique) {
return {
uniqueVar:unique
};
};
}());
Теперь я хочу сделать шаг вперед и сделатьсуперкласс для этих классов.Вот где я застрял.Я не хочу иметь определение staticVar в каждом подклассе.Я хочу получить его от суперкласса.