He estado siguiendo las extensiones de la GUI y los ejemplos de notificaciones usan _isEnabled
o isEnabled
, sin el guión bajo. Ambos parecen funcionar para ampliar o posiblemente reemplazar la funcionalidad existente.¿Cuál es la diferencia entre _isEnabled y isEnabled en Anguila?
isEnabled
Por ejemplo, la clase base PowerTools (que no parece para "extender" funcionalidad existente) tiene:
PowerTools.BaseCommand.prototype.isEnabled = function(selection, pipeline)
{
var p = this.properties;
if (!p.initialized)
{
this.initialize();
}
if (!this.isToolConfigured())
{
return false;
}
if (this.isValidSelection)
{
return this.isValidSelection(selection, pipeline);
}
return true;
};
Una herramienta puede utilizar esta clase de base y declarar. isValidSelection, por ejemplo:
PowerTools.Commands.CountItems.prototype.isValidSelection =
function (selection) { ... }
_isEnabled
Veo que Anguila usa ._isEnabled
para la funcionalidad existente (en la consola de Chrome en numerosos lugares del código). Por ejemplo, WhereUsed
tiene:
Tridion.Cme.Commands.WhereUsed.prototype._isAvailable =
function WhereUsed$_isAvailable(selection) ...
funciones privadas?
Estoy familiarizado con un subrayado anterior que es una convención de nomenclatura para variables privadas. ¿Las funciones _isEnabled y otras que comienzan con un guión bajo son "privadas"? Si es así, entonces
- ¿Cómo debemos extender (añadir funcionalidad adicional al código existente) estas funciones?
- ¿Cómo deberíamos reemplazar (no ejecutar el código existente, pero ejecutar el nuestro en lugar de "anular") estos?
Estoy asumiendo el mismo enfoque se aplica a otras funciones que comienzan con un guión bajo como _isAvailable
y _invoke
.
Buen punto en PowerTools 'isValidSelection. Para administrar la tubería, ¿lo configuramos en verdadero/falso? Veo 'pipeline.stop = true;' en la fuente .js. –
pipeline.stop = true; de hecho significa que no debe continuar con otras extensiones o los métodos de subrayado. Tipo de "Lo sé mejor, deja de buscar otras respuestas" –