diff options
Diffstat (limited to 'files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html')
-rw-r--r-- | files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html b/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html new file mode 100644 index 0000000000..b2ede9dd60 --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html @@ -0,0 +1,185 @@ +--- +title: Object.prototype.propertyIsEnumerable() +slug: Web/JavaScript/Referencia/Objetos_globales/Object/propertyIsEnumerable +tags: + - JavaScript + - Objecto + - Property + - metodo +translation_of: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +--- +<div>{{JSRef}}</div> + +<p>El método <code><strong>propertyIsEnumerable()</strong></code> regresa un Boleano indicando si la propiedad especificada es enumerable.</p> + +<h2 id="Sintaxis">Sintaxis</h2> + +<pre class="syntaxbox"><code><var>obj</var>.propertyIsEnumerable(<var>prop</var>)</code></pre> + +<h3 id="Parametros">Parametros</h3> + +<dl> + <dt><code>prop</code></dt> + <dd>Nombre de la propiedad a probar.</dd> +</dl> + +<h2 id="Descripción">Descripción</h2> + +<p>Todos los objetos tienen un método <code>propertyIsEnumerable</code>. Este método puede determinar si la propiedad especificada en el objeto puede ser enumerada por un ciclo {{jsxref("Statements/for...in", "for...in")}}, con la excepción de propiedades heredadas a través de prototype. Si el objeto no tiene la propiedad especificada, este método regresa un valor <code>false</code>.</p> + +<h2 id="Ejemplo">Ejemplo</h2> + +<h3 id="Uso_básico_de_propertyIsEnumerable">Uso básico de <code>propertyIsEnumerable</code></h3> + +<p>El siguiente ejemplo muestra el uso de <code>propertyIsEnumerable</code> en objetos y arrays:</p> + +<pre class="brush: js">var o = {}; +var a = []; +o.prop = 'es enumerable'; +a[0] = 'es enumerable'; + +o.propertyIsEnumerable('prop'); // regresa true +a.propertyIsEnumerable(0); // regresa true +</pre> + +<h3 id="Definidas_por_usuario_vs_predefinidas">Definidas por usuario vs predefinidas</h3> + +<p>El siguiente ejemplo demuestra la enumerabilidad de las propiedades definidas por el usuario contra las predefinidas:</p> + +<pre class="brush: js">var a = ['es enumerable']; + +a.propertyIsEnumerable(0); // regresa true +a.propertyIsEnumerable('length'); // regresa false + +Math.propertyIsEnumerable('random'); // regresa false +this.propertyIsEnumerable('Math'); // regresa false +</pre> + +<h3 id="Directa_vs_heredadas">Directa vs heredadas</h3> + +<pre class="brush: js">var a = []; +a.propertyIsEnumerable('constructor'); // regresa false + +function primerConstructor() { + this.propiedad = 'no es enumerable'; +} + +primerConstructor.prototype.primerMetodo = function() {}; + +function segundoConstructor() { + this.metodo = function() { return 'es enumerable'; }; +} + +secondConstructor.prototype = new primerConstructor; +secondConstructor.prototype.constructor = segundoConstructor; + +var o = new segundoConstructor(); +o.propiedadArbitraria = 'is enumerable'; + +o.propertyIsEnumerable('propiedadArbitraria '); // regresa true +o.propertyIsEnumerable('metodo'); // regresa true +o.propertyIsEnumerable('propiedad'); // regresa false + +o.propiedad = 'es enumerable'; + +o.propertyIsEnumerable('propiedad'); // regresa true + +// Regresan false por estar en el prototipo el cual no es +// considerado por propertyIsEnumerable (a pesar de que las dos ultimas son +// iterables con un for-in) +o.propertyIsEnumerable('prototype'); // regresa false (como en JS 1.8.1/FF3.6) +o.propertyIsEnumerable('constructor'); // regresa false +o.propertyIsEnumerable('firstMethod'); // regresa false +</pre> + +<h2 id="Especificaciones">Especificaciones</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificación</th> + <th scope="col">Estatus</th> + <th scope="col">Comentario</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definición inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.4.7', 'Object.prototype.propertyIsEnumerable')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidad_de_navegadores">Compatibilidad de 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>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Soporte básico</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notas_específicas_para_Gecko">Notas específicas para Gecko</h2> + +<p>Al inicio de JavaScript 1.8.1 (in Firefox 3.6), <code>propertyIsEnumerable('prototype')</code> regresa <code>false</code> en lugar de <code>true</code>; esto hace que el resultado cumpla con la especificación de ECMAScript 5.</p> + +<h2 id="Véase_también">Véase también</h2> + +<ul> + <li><a href="/en-US/docs/Enumerability_and_ownership_of_properties">Enumerability and ownership of properties</a></li> + <li>{{jsxref("Statements/for...in", "for...in")}}</li> + <li>{{jsxref("Object.keys()")}}</li> + <li>{{jsxref("Object.defineProperty()")}}</li> +</ul> |