Не приватную - protected, конечно.
Вкратце как на php более конкретно (чертеж)
// в методе коллекции
$data=$model->columns();
foreach($data as $name=>$col) {
if($col['type']=='file')
$this->_d[$name]= new FormFile($col,$model->file_options());
else
$this->_d[$name]= new FormField($col);
}
// в файлах
class FormField {
protected $_d=array();
public function __construct($data){
$this->_d=$data;
}
}
class FormFile extends FormField {
private $opts=array();
public function __construct($data,$opts){
parent::__construct($data);
$this->opts=$opts;
}
}
вопрос - как сделать такое же на js