1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
---
title: Object.isExtensible()
slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible
tags:
- ECMAScript5
- JavaScript
- JavaScript 1.8.5
- Objeto
- metodo
translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible
original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/isExtensible
---
<div>{{JSRef}}</div>
<p>El método <strong><code>Object.isExtensible()</code></strong> determina si un objeto es extendible (si puede tener propiedades nuevas agregadas a éste).</p>
<h2 id="Síntaxis">Síntaxis</h2>
<pre class="syntaxbox"><code>Object.isExtensible(<var>obj</var>)</code></pre>
<h3 id="Parametros">Parametros</h3>
<dl>
<dt><code>obj</code></dt>
<dd>El objeto a ser revisado.</dd>
</dl>
<h2 id="Descripción">Descripción</h2>
<p>Los objetos son extendibles por defecto: ellos pueden tener propiedades nuevas agregadas a ellos, y (en motores que soportan {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} la propiedad __proto__) pueden ser modificados. Un objeto puede ser marcado como no extendible usando {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}}, o {{jsxref("Object.freeze()")}}.</p>
<h2 id="Ejemplos">Ejemplos</h2>
<pre class="brush: js">// Los Objetos nuevos son extendibles (por defecto).
var empty = {};
Object.isExtensible(empty); // === true
// ...pero eso puede cambiar.
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false
// Objetos sellados por definición son no-extendibles.
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false
// Objetos congelados también por definición son no-extendibles.
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false
</pre>
<h2 id="Notas">Notas</h2>
<p>En ES5, si el argumento pasado a éste método no es un objeto (primitivo), entonces regresará {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como argumento será tratado como si fuera un objeto no-extendible ordinario, simplemente regresa <code>false</code>.</p>
<pre class="brush: js">Object.isExtensible(1);
// TypeError: 1 is not an object (ES5 code)
Object.isExtensible(1);
// false (ES6 code)
</pre>
<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">Comentario</th>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td>Definición inicial. Implementada en JavaScript 1.8.5.</td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}}</td>
<td>{{Spec2('ES6')}}</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>Caracteristica</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("6")}}</td>
<td>{{CompatGeckoDesktop("2.0")}}</td>
<td>{{CompatIE("9")}}</td>
<td>{{CompatOpera("12")}}</td>
<td>{{CompatSafari("5.1")}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Caracteristica</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>Soporote básico</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Ver_también">Ver también</h2>
<ul>
<li>{{jsxref("Object.preventExtensions()")}}</li>
<li>{{jsxref("Object.seal()")}}</li>
<li>{{jsxref("Object.isSealed()")}}</li>
<li>{{jsxref("Object.freeze()")}}</li>
<li>{{jsxref("Object.isFrozen()")}}</li>
<li>{{jsxref("Reflect.isExtensible()")}}</li>
</ul>
|