Вот текущий метод, который я использую, где все либо является общедоступным, либо частным. Однако я хотел бы различать статику и экземпляр. Как я могу добавить это?JavaScript Framework для экземпляра/статические переменные?
obj
содержит класс или объект, а config_module определяет, какой тип модуля это.
Все частные, все общедоступные (коллекция статики) или экземпляр, основанный на методе конструктора.
Если я использую экземпляр на основе, как я могу различать статику и свойства на основе экземпляра?
$P.support = $P.parsel = function (obj, config_module) {
$R.Parsel[obj.Name] = obj;
// all properties are private
if (!config_module) {
return undefined;
}
// all properties are public
if (config_module === true) {
return obj;
}
// constructor based, all properties are public
if (config_module === 'constructor') {
var object_public;
if (obj.constructor) {
object_public = obj.constructor;
delete obj.constructor;
}
$A.someKey(obj, function (val, key) {
// like this ?
if (/^s_/.test(key)) {
object_public[key] = val;
// like this ?
} else if (/^p_/.test(key)) {
object_public.prototype[key] = val;
} else {
object_public.prototype[key] = val;
}
});
return object_public;
}
};
ну ... если я добавлю вещи к прототипу, они тоже «статичны». То есть есть только один за «класс». Как насчет переменных на основе экземпляра, мне нужно использовать 'this'? –
Хорошая мысль о прототипе; в этом случае у вас будут доступные методы для всех экземпляров, но это может сбивать с толку, потому что эти методы будут иметь доступ к 'this' (что означает каждый отдельный экземпляр). Это то, что вы спрашиваете о переменных на основе экземпляров? – bfavaretto
Правильно, у прототипа есть доступ к экземпляру на основе этих переменных ... и да, о чем я прошу. –