diff options
Diffstat (limited to 'files/es/web/javascript/referencia/objetos_globales/function/name/index.html')
-rw-r--r-- | files/es/web/javascript/referencia/objetos_globales/function/name/index.html | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/files/es/web/javascript/referencia/objetos_globales/function/name/index.html b/files/es/web/javascript/referencia/objetos_globales/function/name/index.html deleted file mode 100644 index 2440bd60f1..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/function/name/index.html +++ /dev/null @@ -1,223 +0,0 @@ ---- -title: Function.name -slug: Web/JavaScript/Referencia/Objetos_globales/Function/name -translation_of: Web/JavaScript/Reference/Global_Objects/Function/name ---- -<div>{{JSRef}}</div> - -<p>La propiedad <code><strong><em>function</em>.name</strong></code> retorna el nombre de la función o retorna <code>"anonymous"</code> por funciones creadas anónimamente.</p> - -<div>{{js_property_attributes(0,0,1)}}</div> - -<div>Nótese que en implementaciones no estándar previas a ES2015 el atributo <code>configurable</code> también era <code>false</code>.</div> - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Nombre_de_una_declaración_de_función">Nombre de una declaración de función</h3> - -<p>La propiedad <code>name</code> retorna el nombre de una declaración de función.</p> - -<pre class="brush: js">function doSomething() {} - -console.log(doSomething.name); // imprime en pantalla "doSomething" -</pre> - -<h3 id="Nombre_de_constructor_de_función">Nombre de constructor de función</h3> - -<p>Las funciones creadas con la sintaxis <code>new Function(...)</code> o simplemente <code>Function(...)</code> tienen como propiedad <code>name</code> una cadena vacía. En los ejemplos a continuación se crean funciones anónimas, tales que su <code>name</code> retorna una cadena vacía:</p> - -<pre class="brush: js">var f = function() {}; -var object = { - someMethod: function() {} -}; - -console.log(f.name == ''); // true -console.log(object.someMethod.name == ''); // también true -</pre> - -<h3 id="Nombres_de_función_inferidos">Nombres de función inferidos</h3> - -<p>Los navegadores que implementan funciones ES2015 pueden inferir el nombre de una función anónima de su posición sintáctica. Por ejemplo:</p> - -<pre class="brush: js">var f = function() {}; -console.log(f.name); // "f"</pre> - -<p>Se puede definir una función con un nombre en un {{jsxref("Operators/Function", "function expression", "", 1)}}:</p> - -<pre class="brush: js">var object = { - someMethod: function object_someMethod() {} -}; -console.log(object.someMethod.name); // imprime "object_someMethod" - -try { object_someMethod } catch(e) { console.log(e); } -// ReferenceError: object_someMethod is not defined -</pre> - -<p>No se puede cambiar el nombre de una función, esta propiedad es de solo lectura:</p> - -<pre class="brush: js">var object = { - // anonymous - someMethod: function() {} -}; - -object.someMethod.name = 'someMethod'; -console.log(object.someMethod.name); // cadena vacía, someMethod es anónimo -</pre> - -<p>Sin embargo, se puede usar {{jsxref("Object.defineProperty()")}} para cambiarlo.</p> - -<h3 id="Nombres_de_métodos">Nombres de métodos</h3> - -<pre class="brush: js">var o = { - foo(){} -}; -o.foo.name; // "foo";</pre> - -<h3 id="Nombres_de_funciones_atadas_(creadas_con_.bind())">Nombres de funciones atadas (creadas con .bind())</h3> - -<p>{{jsxref("Function.bind()")}} produce una función cuyo nombre es igual a "bound " seguido del nombre de la función original.</p> - -<pre class="brush: js">function foo() {}; -foo.bind({}).name; // "bound foo"</pre> - -<h3 id="Nombres_de_funciones_getters_y_setters">Nombres de funciones getters y setters</h3> - -<p>Cuando se usan <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/get">get</a></code> y <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/set">set</a>, </code>"get" y "set" aparecerán en el nombre de la función.</p> - -<pre class="brush: js">var o = { - get foo(){}, - set foo(x){} -}; - -var descriptor = Object.getOwnPropertyDescriptor(o, "foo"); -descriptor.get.name; // "get foo" -descriptor.set.name; // "set foo";</pre> - -<h2 id="Ejemplos_2">Ejemplos</h2> - -<p>Se puede usar <code>obj.constructor.name</code> para saber cuál es la "clase" de un objeto:</p> - -<pre class="brush: js">function a() {} - -var b = new a(); - -console.log(b.constructor.name); // imprime "a" -</pre> - -<h2 id="Polyfill">Polyfill</h2> - -<p>Para versiones de IE < 9, se puede usar <code>fn._name()</code> en su lugar. Para IE9 o posteriores se puede usar el siguiente <a href="https://github.com/JamesMGreene/Function.name">polyfill</a>.</p> - -<h2 id="Especificaciones">Especificaciones</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificación</th> - <th scope="col">Estado</th> - <th scope="col">Comentarios</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-name', 'name')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Definición inicial.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-name', 'name')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilidad_con_navegadores">Compatibilidad con navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Soporte básico</td> - <td>{{CompatChrome(33.0)}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatVersionUnknown}}</td> - </tr> - <tr> - <td>Configurable: true</td> - <td>{{CompatChrome(43.0)}}</td> - <td>{{CompatGeckoDesktop(38)}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - </tr> - <tr> - <td>Nombres inferidos en funciones anónimas</td> - <td>{{CompatChrome(51.0)}}</td> - <td>{{CompatNo}} [1]</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Android</th> - <th>Android Webview</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - <th>Chrome for Android</th> - </tr> - <tr> - <td>Soporte básico</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatVersionUnknown}}</td> - </tr> - <tr> - <td>Configurable: true</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatGeckoMobile(38)}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - </tr> - <tr> - <td>Nombres inferidos en funciones anónimas</td> - <td>{{CompatNo}}</td> - <td>{{CompatChrome(51.0)}}</td> - <td>{{CompatNo}} [1]</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatChrome(51.0)}}</td> - </tr> - </tbody> -</table> -</div> - -<p>[1] See {{bug(883377)}}.</p> |