Cela va simplement exposer la fonction de la portée de functionone
, être une propriété de l'objet .
Par exemple:
$.functionone = function(){
function setOptions(newOptions){
//...
}
this.setOptions = setOptions;
};
typeof $.setOptions; // "undefined", it doesn't exist
$.functionone();
typeof $.setOptions; // "function"
La valeur this
est définie implicitement JavaScript lorsque vous effectuez un appel de fonction.
Si la fonction est liée en tant que propriété d'un objet (comme $.functionone
), la valeur this
fera référence à l'objet de base ($
dans votre exemple).
Ce n'est pas si utile de l'OMI, il est équivalent à:
$.functionone = function(){
this.setOptions = function (newOptions) {
//...
};
};
Ce qui est à la fin, lorsque vous invoquez functionone
, ce qui équivaut à:
$.setOptions = function (newOptions) {
//..
};
La différence est que la fonction n'est pas named, ce qui peut être utile pour le débogage.
Travailler avec la valeur this
sur les plugins jQuery est plus habituel lorsque vous étendez l'objet jQuery.fn
, dans ce cas, la valeur this
fait référence à l'objet jQuery qui contient les éléments appariés, et non au constructeur jQuery lui-même.