Maneira ideal / preferida de chamar 'SP.ClientContext.executeQueryAsync' no SharePoint

Aprendi o modelo de objeto do lado do cliente e me deparei com o métodoexecuteQueryAsync. Eu descobri que existem algumas maneiras de chamar esse método. Alguns dos que encontrei foram estes:

var context = new SP.ClientContext.get_current();

// Option 1
context.executeQueryAsync(
    function(sender, args){ },
    function(sender, args){ }
);

// Option 2
context.executeQueryAsync(
    Function.createDelegate(this, _onSucceed), 
    Function.createDelegate(this, _onFail)
);

// Option 3
context.executeQueryAsync(
    Function.createDelegate(this, this._onSucceed), 
    Function.createDelegate(this, this._onFail)
);

// Option 4
context.executeQueryAsync(_onSucceed, _onFail);

Qual dessa maneira é a mais ótima / preferida? Também o que a declaraçãoFunction.createDelegate Faz? odocumentação para esta função parece ser muito enigmático para mim.

questionAnswers(2)

yourAnswerToTheQuestion