Ext.apply
, как правило, более удобен (и, возможно, более эффективен, если требуется меньше поисков в цепочке активации, как в вашем примере, хотя это и незначительный момент).Существует также вариант Ext.applyIf
, который применяет только элементы из исходного объекта, которых нет в целевом объекте, что еще более полезно, поскольку избавляет вас от загрузки ручных проверок if()
.Это действительно полезно, например, при применении значений по умолчанию к объекту конфигурации, которому уже могут быть назначены свойства, определенные пользователем или приложением.
Примечание для будущих читателей, которые посмотрят на принятый ответ: Ext также имеет Ext.extend
что фактически означает «наследовать» от класса , в отличие от Ext.apply[If]
, который просто сливает экземпляр объекта в другой, или Ext.override
, который переопределяет (без подклассов) определение класса.Много вариантов, в зависимости от того, что вам нужно.