variable usar unir una trabaja retorno otra llamar funciones funcion enlazar ejecutar dentro con como javascript scope naming-conventions

usar - retorno javascript



Marcar el prefijo para los nombres de propiedades y métodos en JavaScript (6)

"¿Solo convenciones? ¿O hay más detrás del prefijo de subrayado?"

Además de las convenciones de privacidad, también quería ayudar a concienciar que el prefijo de subrayado también se usa para argumentos que dependen de argumentos independientes, específicamente en los mapas de anclaje de URI. Las claves dependientes siempre apuntan a un mapa.

Ejemplo (de https://github.com/mmikowski/urianchor ):

$ .uriAnchor.setAnchor ({page: ''profile'', _page: {uname: ''wendy'', en línea: ''today''}});

El ancla de URI en el campo de búsqueda del navegador se cambia a:

#! page = perfil: uname, wendy | en línea, hoy

Esta es una convención utilizada para conducir un estado de aplicación basado en cambios hash.

¿Es el prefijo de guión bajo en JavaScript solo una convención, como por ejemplo en los métodos de clase privados de Python?

De la documentación de 2.7 Python:

Las variables de instancia "privadas" a las que no se puede acceder, excepto desde dentro de un objeto, no existen en Python. Sin embargo, hay una convención que es seguida por la mayoría del código de Python: un nombre prefijado con un guión bajo (por ejemplo, _spam) debe tratarse como una parte no pública de la API (ya sea una función, un método o un miembro de datos) .

¿Esto también se aplica a JavaScript?

Tomemos como ejemplo este código JavaScript:

function AltTabPopup() { this._init(); } AltTabPopup.prototype = { _init : function() { ... } }

Además, se usan las variables prefijadas de subrayado.

... this._currentApp = 0; this._currentWindow = -1; this._thumbnailTimeoutId = 0; this._motionTimeoutId = 0; ...

¿Solo convenciones? ¿O hay más detrás del prefijo de subrayado?

Admito que mi pregunta es bastante similar a esta pregunta , pero no hizo a nadie más inteligente sobre el significado del prefijo de subrayado en JavaScript.


Eso es solo una convención. El lenguaje Javascript no da ningún significado especial a los identificadores que comienzan con caracteres de subrayado.

Dicho esto, es una convención bastante útil para un lenguaje que no admite la encapsulation para usar. Aunque no hay forma de evitar que alguien abuse de las implementaciones de sus clases, al menos sí aclara su intención, y documenta dicho comportamiento como incorrecto en primer lugar.


JSDoc 3 le permite anotar sus funciones con @access private (anteriormente la etiqueta @private ) que también es útil para transmitir su intención a otros desarrolladores: http://usejsdoc.org/tags-access.html


JavaScript realmente admite la encapsulación, a través de un método que implica ocultar miembros en cierres (Crockford). Dicho esto, a veces es engorroso, y la convención del subrayado es una convención bastante buena de usar para cosas que son más bien privadas, pero que en realidad no necesitas esconderte.


Se debe señalar que hay una biblioteca JS llamada guión bajo. Al usar esa biblioteca, el prefijo _ tiene significado.

http://underscorejs.org/


import/export ahora está haciendo el trabajo con ES6. Todavía tiendo a prefijar las funciones no exportadas con _ si la mayoría de mis funciones se exportan.

Si exporta solo una clase (como en proyectos angulares), no es necesario en absoluto.