diff options
Diffstat (limited to 'files/ca/web/javascript/reference/global_objects/object')
7 files changed, 0 insertions, 1291 deletions
diff --git a/files/ca/web/javascript/reference/global_objects/object/assign/index.html b/files/ca/web/javascript/reference/global_objects/object/assign/index.html deleted file mode 100644 index 855b5654a6..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/assign/index.html +++ /dev/null @@ -1,252 +0,0 @@ ---- -title: Object.assign() -slug: Web/JavaScript/Reference/Global_Objects/Object/assign -translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign ---- -<div>{{JSRef}}</div> - -<p>El mètode <strong><code>Object.assign()</code></strong> s'utilitza per copiar els valors de totes les propietats enumerables pròpies d'un o més objectes d'orígens a un objecte objectiu o destí. Retornarà l'objecte destí.</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>Object.assign(<var>target</var>, ...<var>orígens</var>)</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>target</code></dt> - <dd>L'objecte destí.</dd> - <dt><code>sources</code></dt> - <dd>El(s) objecte(s) d'orígen.</dd> -</dl> - -<h3 id="Valor_retornat">Valor retornat</h3> - -<p>L'objecte destí (o objectiu) es retornat.</p> - -<h2 id="Descripció">Descripció</h2> - -<p>El mètode <code>Object.assign()</code> només copia propietats <em>enumerable</em>s i <em>pròpies</em> d'un objecte orígen a un objecte destí. S'utilitza <code>[[Get]]</code> a l'orígen i <code>[[Put]]</code> al destí, de forma que invocarà getters i setters. Per tant, <em>assigna</em> propietats en comptes de només copiar o definir noves propietats. Axò pot fer que sigui inadequat per juntar noves propietats en un prototipus si les fonts de la unió contenen getters. Per copiar definicions de la propietat, incloent la seva enumerabilitat, en prototipus s'ha de fer servir {{jsxref("Object.getOwnPropertyDescriptor()")}} i {{jsxref("Object.defineProperty()")}}.</p> - -<p>Tant la propietat {{jsxref("String")}} com la propietat {{jsxref("Symbol")}} són copiades.</p> - -<p>En cas d'error, per exemple si una propietat no és modificable, un {{jsxref("TypeError")}} <strong><u>s'incrementarà </u></strong>i l'objecte <code>target</code> object es mantindrà sense canvis.</p> - -<p>Vegeu que <code>Object.assign()</code> does not throw on {{jsxref("null")}} or {{jsxref("undefined")}} source values.</p> - -<h2 id="Exemples">Exemples</h2> - -<h3 id="Clonar_un_objecte">Clonar un objecte</h3> - -<pre class="brush: js">var obj = { a: 1 }; -var copy = Object.assign({}, obj); -console.log(copy); // { a: 1 } -</pre> - -<h3 id="Unir_objectes">Unir objectes</h3> - -<pre class="brush: js">var o1 = { a: 1 }; -var o2 = { b: 2 }; -var o3 = { c: 3 }; - -var obj = Object.assign(o1, o2, o3); -console.log(obj); // { a: 1, b: 2, c: 3 } -console.log(o1); // { a: 1, b: 2, c: 3 }, L'objecte de destinació es canvia</pre> - -<h3 id="Copiar_propietats_symbol-typed">Copiar propietats symbol-typed</h3> - -<pre class="brush: js">var o1 = { a: 1 }; -var o2 = { [Symbol('foo')]: 2 }; - -var obj = Object.assign({}, o1, o2); -console.log(obj); // { a: 1, [Symbol("foo")]: 2 } -</pre> - -<h3 id="Les_propietats_heretades_i_les_propietats_no_enumerables_no_es_poden_copiar">Les propietats heretades i les propietats no enumerables no es poden copiar</h3> - -<pre class="brush: js">var obj = Object.create({ foo: 1 }, { // foo és una propietat heretada. - bar: { - value: 2 // bar és una propietat no enumerable. - }, - baz: { - value: 3, - enumerable: true // baz is an own enumerable property. - } -}); - -var copy = Object.assign({}, obj); -console.log(copy); // { baz: 3 } -</pre> - -<h3 id="Primitives_will_be_wrapped_to_objects">Primitives will be wrapped to objects</h3> - -<pre class="brush: js">var v1 = '123'; -var v2 = true; -var v3 = 10; -var v4 = Symbol('foo') - -var obj = Object.assign({}, v1, null, v2, undefined, v3, v4); -// Primitives will be wrapped, null and undefined will be ignored. -// Note, only string wrappers can have own enumerable properties. -console.log(obj); // { "0": "1", "1": "2", "2": "3" } -</pre> - -<h3 id="Exceptions_will_interrupt_the_ongoing_copying_task">Exceptions will interrupt the ongoing copying task</h3> - -<pre class="brush: js">var target = Object.defineProperty({}, 'foo', { - value: 1, - writeable: false -}); // target.foo is a read-only property - -Object.assign(target, { bar: 2 }, { foo2: 3, foo: 3, foo3: 3 }, { baz: 4 }); -// TypeError: "foo" is read-only -// The Exception is thrown when assigning target.foo - -console.log(target.bar); // 2, the first source was copied successfully. -console.log(target.foo2); // 3, the first property of the second source was copied successfully. -console.log(target.foo); // 1, exception is thrown here. -console.log(target.foo3); // undefined, assign method has finished, foo3 will not be copied. -console.log(target.baz); // undefined, the third source will not be copied either. -</pre> - -<h3 id="Copying_accessors">Copying accessors</h3> - -<pre class="brush: js">var obj = { - foo: 1, - get bar() { - return 2; - } -}; - -var copy = Object.assign({}, obj); -console.log(copy); -// { foo: 1, bar: 2 }, the value of copy.bar is obj.bar's getter's return value. - -// This is an assign function which can copy accessors. -function myAssign(target, ...sources) { - sources.forEach(source => { - Object.defineProperties(target, Object.keys(source).reduce((descriptors, key) => { - descriptors[key] = Object.getOwnPropertyDescriptor(source, key); - return descriptors; - }, {})); - }); - return target; -} - -var copy = myAssign({}, obj); -console.log(copy); -// { foo:1, get bar() { return 2 } } -</pre> - -<h2 id="Polyfill">Polyfill</h2> - -<p>This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway:</p> - -<pre class="brush: js">if (!Object.assign) { - Object.defineProperty(Object, 'assign', { - enumerable: false, - configurable: true, - writable: true, - value: function(target) { - 'use strict'; - if (target === undefined || target === null) { - throw new TypeError('Cannot convert first argument to object'); - } - - var to = Object(target); - for (var i = 1; i < arguments.length; i++) { - var nextSource = arguments[i]; - if (nextSource === undefined || nextSource === null) { - continue; - } - nextSource = Object(nextSource); - - var keysArray = Object.keys(Object(nextSource)); - for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) { - var nextKey = keysArray[nextIndex]; - var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - to[nextKey] = nextSource[nextKey]; - } - } - } - return to; - } - }); -} -</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Definició inicial</td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_de_navegadors">Compatibilitat de navegadors</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>Suport bàsic</td> - <td>{{CompatChrome("45")}}</td> - <td>{{CompatGeckoDesktop("34")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Android</th> - <th>Chrome per Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Suport bàsic</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoMobile("34")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Vegeu_també">Vegeu també</h2> - -<ul> - <li>{{jsxref("Object.defineProperties()")}}</li> -</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/freeze/index.html b/files/ca/web/javascript/reference/global_objects/object/freeze/index.html deleted file mode 100644 index 1231afe27f..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/freeze/index.html +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Object.freeze() -slug: Web/JavaScript/Reference/Global_Objects/Object/freeze -translation_of: Web/JavaScript/Reference/Global_Objects/Object/freeze ---- -<div>{{JSRef}}</div> - -<p>El mètode <code><strong>Object.freeze()</strong></code> congela un objecte: és a dir, evita que se li puguin afegir noves propietats, eliminar propietats ja existents així com modificar els paràmetres d'enumerabilitat, configurabilitat i possibilitat d'escriptura de les propietats existents. Això, en essència fa que l'objecte esdevingui immutable a efectes pràctics. El mètode retorna l'objecte que s'ha congelat.</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>Object.freeze(<var>obj</var>)</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>L'objecte a congelar.</dd> -</dl> - -<h2 id="Descripció">Descripció</h2> - -<p>Res pot ser afegit o eliminat del conjunt de propietats d'un objecte congelat. Qualsevol intent fallarà o bé sense reportar cap error o bé llençant una excepció {{jsxref("TypeError")}} (és l'excepció més freqüent que serà llençada però en pot llençat altres tipus; a l'utilitzar el {{jsxref("Strict_mode", "mode estricte", "", 1)}}).</p> - -<p>Congelar un objecte també evita que es puguin modificar els valors de les seves propietats. Les propietats d'accés (getters i setters) segueixen funcionan (donant la il·lusió que s'ha canviat el valor). Cal advertir, però, que els valors que siguin objectes sí que es poden modificar, a no ser que aquests objectes també estiguin congelats.</p> - -<h2 id="Exemples">Exemples</h2> - -<pre class="brush: js">var obj = { - prop: function() {}, - foo: 'bar' -}; - -// Es poden afegir noves propietats, així com canviar o eliminar les propietats ja existents -obj.foo = 'baz'; -obj.lumpy = 'woof'; -delete obj.prop; - -var o = Object.freeze(obj); - -assert(Object.isFrozen(obj) === true); - -// A partir d'ara qualsevol canvi fallarà -obj.foo = 'quux'; // falla silenciosament -obj.quaxxor = 'the friendly duck'; // romàn en silenci i no afegeix la propietat - -// ...i en mode estricte qualsevol intent llençarà una excepció TypeError -function fail(){ - 'use strict'; - obj.foo = 'sparky'; // llença TypeError - delete obj.quaxxor; // llença TypeError - obj.sparky = 'arf'; // llença TypeError -} - -fail(); - -// Intentar realitzar canvis a través de Object.defineProperty també resultaran en excepcions -Object.defineProperty(obj, 'ohai', { value: 17 }); // llença TypeError -Object.defineProperty(obj, 'foo', { value: 'eit' }); // llença TypeError -</pre> - -<p>L'exemple següent demostra que valors de tipus objecte pertanyents a propietats d'un objecte congelat sí que es poden modificar.(<code>freeze</code> no s'aplica de manera recursiva).</p> - -<pre class="brush: js">obj1 = { - internal: {} -}; - -Object.freeze(obj1); -obj1.internal.a = 'aValue'; - -obj1.internal.a // 'aValue' - -// Per a fer que obj sigui totalment immutable cal congelar tots els objectes referenciats per aquest. -// Per a aconseguir això utilitzem la funció següent -function deepFreeze(obj) { - - // Obté els nomes de les propietats definides a l'objecte obj - var propNames = Object.getOwnPropertyNames(obj); - - // Congela les propietats abans de congelar l'objecte en si - propNames.forEach(function(name) { - var prop = obj[name]; - - // Congela prop si aquest és un objecte - if (typeof prop == 'object' && !Object.isFrozen(prop)) - deepFreeze(prop); - }); - - // Congela l'objecte pare - return Object.freeze(obj); -} - -obj2 = { - internal: {} -}; - -deepFreeze(obj2); -obj2.internal.a = 'anotherValue'; -obj2.internal.a; // undefined -</pre> - -<h2 id="Notes">Notes</h2> - -<p>A l'EcmaScript 5, si l'argument passat a aquest mètode no és un objecte (un valor primitiu), llençarà un {{jsxref("TypeError")}}. A l'EcmaScript 6, un argument que no sigui un objecte serà tractat com si fós un objecte congelat ordinari, i simplement el retornarà.</p> - -<pre class="brush: js">> Object.freeze(1) -TypeError: 1 no és un objecte // Codi EcmaScript 5 - -> Object.freeze(1) -1 // Codi EcmaScript 6 -</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificacions</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2.3.9', 'Object.freeze')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Definició inicial. Implementat a JavaScript 1.8.5.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-object.freeze', 'Object.freeze')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Firefox (Gecko)</th> - <th>Chrome</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Suport bàsic</td> - <td>{{CompatGeckoDesktop("2")}}</td> - <td>{{CompatChrome("6")}}</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>Característica</th> - <th>Firefox Mobile (Gecko)</th> - <th>Android</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Suport bàsic</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - <td>{{CompatUnknown}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Vegeu_també">Vegeu també</h2> - -<ul> - <li>{{jsxref("Object.isFrozen()")}}</li> - <li>{{jsxref("Object.preventExtensions()")}}</li> - <li>{{jsxref("Object.isExtensible()")}}</li> - <li>{{jsxref("Object.seal()")}}</li> - <li>{{jsxref("Object.isSealed()")}}</li> -</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/getprototypeof/index.html b/files/ca/web/javascript/reference/global_objects/object/getprototypeof/index.html deleted file mode 100644 index 01666d0898..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/getprototypeof/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Object.getPrototypeOf() -slug: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf -translation_of: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf ---- -<div>{{JSRef}}</div> - -<p>El mètode <code><strong>Object.getPrototypeOf()</strong></code> retorna el prototipus (és a dir, el valor de la propietat interna <code>[[Prototype]]</code>) de l'objecte especificat.</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>Object.getPrototypeOf(<var>obj</var>)</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>L'objecte del qual es retornarà el prototipus.</dd> -</dl> - -<h2 id="Exemples">Exemples</h2> - -<pre class="brush: js">var proto = {}; -var obj = Object.create(proto); -Object.getPrototypeOf(obj) === proto; // true -</pre> - -<h2 id="Notes">Notes</h2> - -<p>A l'EcmaScript 5 llençarà una excepció {{jsxref("TypeError")}} si el paràmetre <code>obj</code> no és un objecte. A l'EcmaScript 6 el paràmetre serà forçat al tipus {{jsxref("Object")}}.</p> - -<pre class="brush: js">Object.getPrototypeOf("foo"); -// TypeError: "foo" no és un objecte (codi EcmaScript 5) -Object.getPrototypeOf("foo"); -// String.prototype (codi EcmaScript 6) -</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2.3.2', 'Object.getPrototypeOf')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Definició inicial.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-object.getprototypeof', 'Object.getProtoypeOf')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</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>Suport bàsic</td> - <td>{{CompatChrome("5")}}</td> - <td>{{CompatGeckoDesktop("1.9.1")}}</td> - <td>{{CompatIE("9")}}</td> - <td>{{CompatOpera("12.10")}}</td> - <td>{{CompatSafari("5")}}</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>Suport bàsic</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="Notes_específiques_per_a_Opera">Notes específiques per a Opera</h2> - -<p>Tot i que versions antigues de Opera no suporten <code>Object.getPrototypeOf()</code>, Opera soporta la propietat no standard {{jsxref("Object.proto", "__proto__")}} a partir de la versió 10.50.</p> - -<h2 id="Vegeu_també">Vegeu també</h2> - -<ul> - <li>{{jsxref("Object.prototype.isPrototypeOf()")}}</li> - <li>{{jsxref("Object.setPrototypeOf()")}} {{experimental_inline}}</li> - <li>{{jsxref("Object.prototype.__proto__")}}</li> - <li>John Resig's post on <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/">getPrototypeOf</a></li> - <li>{{jsxref("Reflect.getPrototypeOf()")}}</li> -</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/index.html b/files/ca/web/javascript/reference/global_objects/object/index.html deleted file mode 100644 index 1c2a779065..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/index.html +++ /dev/null @@ -1,213 +0,0 @@ ---- -title: Object -slug: Web/JavaScript/Reference/Global_Objects/Object -tags: - - Constructor - - JavaScript - - NeedsTranslation - - Object - - TopicStub -translation_of: Web/JavaScript/Reference/Global_Objects/Object ---- -<div>{{JSRef}}</div> - -<p>El constructor <code><strong>Object</strong></code> crea un embolcall d'objecte.</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>// Inicialitzador d'objecte o literal -{ [ <var>parellNomValor1</var>[, <var>parellNomValor2</var>[, ...<var>parellNomValorN</var>] ] ] } - -// Cridat com a constructor -new Object([valor])</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>parellNomValor1, parellNomValor2, ... parellNomValor<em>N</em></code></dt> - <dd>Parells de noms (string) i valors (quasevol valor) on els noms se separen dels valors mitjançant dos punts (:).</dd> - <dt><code>value</code></dt> - <dd>Qualsevol valor.</dd> -</dl> - -<h2 id="Descripció">Descripció</h2> - -<p>El constructor <code>Object</code> crea un embolcall d'objecte per al valor donat. Si el valor és {{jsxref("null")}} o bé {{jsxref("undefined")}}, crearà i retornarà un objecte buit. En cas contrari retornarà un objecte del tipus corresponent al valor donat. Si el valor donat ja és un objecte, retornarà el mateix objecte.</p> - -<p>Quan es crida fora d'un contexte constructor, <code>Object</code> es comporta exactament de la mateixa manera que <code>new Object()</code>.</p> - -<p>Vegeu també la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">sintaxi literal / d'inicialització d'objectes</a>.</p> - -<h2 id="Propietats_del_constructor_Object">Propietats del constructor <code>Object</code></h2> - -<dl> - <dt><code>Object.length</code></dt> - <dd>Val 1.</dd> - <dt>{{jsxref("Object.prototype")}}</dt> - <dd>Permet l'adició de propietats a tots els objecte del tipus <code>Object</code>.</dd> -</dl> - -<h2 id="Mètodes_del_constructor_Object">Mètodes del constructor <code>Object</code></h2> - -<dl> - <dt>{{jsxref("Object.assign()")}} {{experimental_inline}}</dt> - <dd>Crea un nou objecte copiant els valors de totes les propietats pròpies enumerables d'un o més objectes origin a l'objecte destí.</dd> - <dt>{{jsxref("Object.create()")}}</dt> - <dd>Crea un nou objecte amb l'objecte prototipus que s'especifiqui, així com les propietats passades.</dd> - <dt>{{jsxref("Object.defineProperty()")}}</dt> - <dd>Afegeix a l'objecte la propietat amb nom descrita pel descriptor especificat.</dd> - <dt>{{jsxref("Object.defineProperties()")}}</dt> - <dd>Afegeix a l'objecte les propietats amb nom descrites pels descriptors especificats.</dd> - <dt>{{jsxref("Object.freeze()")}}</dt> - <dd><em>Congela</em> un objecte de forma que les propietats d'aquest no poden ser esborrades o canviades.</dd> - <dt>{{jsxref("Object.getOwnPropertyDescriptor()")}}</dt> - <dd>Retorna un descriptor de propietat per a la propietat donada d'un objecte.</dd> - <dt>{{jsxref("Object.getOwnPropertyNames()")}}</dt> - <dd>Retorna un array que contindrà els nomes de totes les propietats <strong>pròpies</strong> d'un objecte, tant enumerables com no enumerables.</dd> - <dt>{{jsxref("Object.getOwnPropertySymbols()")}} {{experimental_inline}}</dt> - <dd>Retorna un array amb totes les propietats de tipus symbol que siguin pròpies d'un objecte donat.</dd> - <dt>{{jsxref("Object.getPrototypeOf()")}}</dt> - <dd>Retorna el prototipus de l'objecte especificat.</dd> - <dt>{{jsxref("Object.is()")}} {{experimental_inline}}</dt> - <dd>Compara dos valors i determina si són equivalents (és a dir, si són el mateix objecte).</dd> - <dt>{{jsxref("Object.isExtensible()")}}</dt> - <dd>Determina si és permés extendre un objecte.</dd> - <dt>{{jsxref("Object.isFrozen()")}}</dt> - <dd>Determina si l'objecte està congelat.</dd> - <dt>{{jsxref("Object.isSealed()")}}</dt> - <dd>Determina si un objecte està segellat.</dd> - <dt>{{jsxref("Object.keys()")}}</dt> - <dd>Retorna un array que conté els noms de totes les propietats enumerables <strong>pròpies</strong> d'un objecte donat.</dd> - <dt>{{jsxref("Object.observe()")}} {{experimental_inline}}</dt> - <dd>Observa canvies en un objecte de forma asíncrona.</dd> - <dt>{{jsxref("Object.preventExtensions()")}}</dt> - <dd>Desactiva la capacitat d'un objecte per a ser extés.</dd> - <dt>{{jsxref("Object.seal()")}}</dt> - <dd>Desactiva la capacitat de poder esborrar propietats de l'objecte.</dd> - <dt>{{jsxref("Object.setPrototypeOf()")}} {{experimental_inline}}</dt> - <dd>Assigna el prototipus (és a dir, la propietat interna <code>[[Prototype]]</code>)</dd> -</dl> - -<h2 id="Instàncies_de_Object_i_l'objecte_prototipus">Instàncies de <code>Object</code> i l'objecte prototipus</h2> - -<p>A JavaScript, tots els objectes són descendents de <code>Object</code>; tots els objectes hereten els mètodes i propietats de {{jsxref("Object.prototype")}}, tot i que poden ser sobreescrits. Per exemple, els prototipus d'altres constructors sobreescriuen la propietat <code>constructor</code> i ofereixen el seu propi mètode <code>toString()</code>. Els canvis al prototipus <code>Object</code> es propaguen a tots els objectes a no ser que les propietats i mètodes que reben aquests canvis hagin sigut sobreescrites més avall a la cadena de prototipus.</p> - -<h3 id="Propietats">Propietats</h3> - -<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Properties') }}</div> - -<h3 id="Mètodes">Mètodes</h3> - -<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Methods') }}</div> - -<h2 id="Exemples">Exemples</h2> - -<h3 id="Utilitzar_Object_amb_els_tipus_undefined_i_null_types">Utilitzar <code>Object</code> amb els tipus <code>undefined</code> i <code>null</code> types</h3> - -<p>Els següents exemples emmagatzemen un objecte <code>Object</code> buit a <code>o</code>:</p> - -<pre class="brush: js">var o = new Object(); -</pre> - -<pre class="brush: js">var o = new Object(undefined); -</pre> - -<pre class="brush: js">var o = new Object(null); -</pre> - -<h3 id="Utilitzar_Object_per_a_crear_objectes_booleans">Utilitzar <code>Object</code> per a crear objectes booleans</h3> - -<p>Els exemples següents emmagatzemen objectes de tipus {{jsxref("Boolean")}} a <code>o</code>:</p> - -<pre class="brush: js">// equivalent a o = new Boolean(true); -var o = new Object(true); -</pre> - -<pre class="brush: js">// equivalent a o = new Boolean(false); -var o = new Object(Boolean()); -</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES1')}}</td> - <td>{{Spec2('ES1')}}</td> - <td>Definició inicial. Implementat a JavaScript 1.0.</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2', 'Object')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td> </td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-object-objects', 'Object')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</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>Suport bàsic</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>Suport bàsic</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="Vegeu_també">Vegeu també</h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">Inicialitzador d'objectes</a></li> -</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/isextensible/index.html b/files/ca/web/javascript/reference/global_objects/object/isextensible/index.html deleted file mode 100644 index 7b8700654c..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/isextensible/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Object.isExtensible() -slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible -translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible ---- -<div>{{JSRef}}</div> - -<p>El mètode <strong><code>Object.isExtensible()</code></strong> determina si un objecte és extensible (és a dir, si accepta l'addició de noves propietats).</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>Object.isExtensible(<var>obj</var>)</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>L'objecte del que comprovarà l'extensibilitat.</dd> -</dl> - -<h2 id="Descripció">Descripció</h2> - -<p>Per defecte tots els objectes són extensibles: se'ls hi poden afegir noves propietats, i (en objectes que suportin {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} la seva propietat __proto__ property) es pot modificar. Es pot marcar un objecte com a no extensible utilitzant {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}}, o bé {{jsxref("Object.freeze()")}}.</p> - -<h2 id="Exemples">Exemples</h2> - -<pre class="brush: js">// Els objectes nous són extensibles. -var empty = {}; -Object.isExtensible(empty); // === true - -// ...pero això pot canviar. -Object.preventExtensions(empty); -Object.isExtensible(empty); // === false - -// Els objectes segellats són no extensibles per definició -var sealed = Object.seal({}); -Object.isExtensible(sealed); // === false - -// Els objectes congelats també són no extensibes per definició -var frozen = Object.freeze({}); -Object.isExtensible(frozen); // === false -</pre> - -<h2 id="Notes">Notes</h2> - -<p>A l'EcmaScript 5, si l'argument d'aquest mètode no és un objecte (un valor primitiu) es llençarà una excepció {{jsxref("TypeError")}}. A l'EcmaScript 6, un argument que no sigui un objecte es tractarà com si fós un objecte no extensible ordinari i simplement retornarà <code>false</code>.</p> - -<pre class="brush: js">Object.isExtensible(1); -// TypeError: 1 no és un objecte (codi EcmaScript 5) - -Object.isExtensible(1); -// false (codi EcmaScript 6) -</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Definició inicial. Implementat a 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="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</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>Suport bàsic</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>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>Suport bàsic</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="Vegeu_també">Vegeu també</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> diff --git a/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html deleted file mode 100644 index 46c2e24be2..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Object.isFrozen() -slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen -translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen ---- -<div>{{JSRef}}</div> - -<p>El mètode <code><strong>Object.isFrozen()</strong></code> determina si un objecte està congelat.</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>Object.isFrozen(<var>obj</var>)</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>L'objecte que es comprovarà si està congelat o no.</dd> -</dl> - -<h2 id="Descripció">Descripció</h2> - -<p>Un objecte està congelat si i només si no és {{jsxref("Object.isExtensible()", "extensible", "", 1)}}, cap de les seves propietats és configurable, i cap de les seves propietats de dades (és a dir, propietats que no són <em>accessor</em> amb components getter o setter) that is, properties which are not accessor properties with getter or setter components) es poden escriure (modificar el seu valor).</p> - -<h2 id="Exemples">Exemples</h2> - -<pre class="brush: js">// Els objectes nous són extensibles, així que no estan congelats. -Object.isFrozen({}); // === false - -// Un objecte buit que no és extensible està congelat ja que no te propietats que trenquin les restriccions. -var vacuouslyFrozen = Object.preventExtensions({}); -Object.isFrozen(vacuouslyFrozen); // === true - -// Un objecte nou amb una propietat és extensible, i per tant no està congelat. -var oneProp = { p: 42 }; -Object.isFrozen(oneProp); // === false - -// Fer-lo no extensible no el fa congelat, -// perquè la propietat encara és configurable (i permet l'escriptura). -Object.preventExtensions(oneProp); -Object.isFrozen(oneProp); // === false - -// ...però, un altre cop, si eliminem la propietat ens trobem amb un objecte buit congelat. -delete oneProp.p; -Object.isFrozen(oneProp); // === true - -// Un objecte no extensible amb una propietat que no permeti l'escriptura però sí que es configurable no està congelat. -var nonWritable = { e: 'plep' }; -Object.preventExtensions(nonWritable); -Object.defineProperty(nonWritable, 'e', { writable: false }); // fer que la propietat no permeti l'escriptura -Object.isFrozen(nonWritable); // === false - -// Fer aquesta propietat no configurable fa que l'objecte estigui congelat -Object.defineProperty(nonWritable, 'e', { configurable: false }); // fer la propietat no configurable -Object.isFrozen(nonWritable); // === true - -// Un objecte no extensible amb una propietat no configurable però que si permeti l'escriptura tampoc està congelat. -var nonConfigurable = { release: 'the kraken!' }; -Object.preventExtensions(nonConfigurable); -Object.defineProperty(nonConfigurable, 'release', { configurable: false }); -Object.isFrozen(nonConfigurable); // === false - -// Canviar aquesta propietat per a que no permeti l'escriptura fa que l'objecte estigui congelat. -Object.defineProperty(nonConfigurable, 'release', { writable: false }); -Object.isFrozen(nonConfigurable); // === true - -// Un objecte amb una propietat accessor no extensible no està congelat. -var accessor = { get food() { return 'yum'; } }; -Object.preventExtensions(accessor); -Object.isFrozen(accessor); // === false - -// ...però si la propietat es fa no configurable l'objecte esdevé congelat. -Object.defineProperty(accessor, 'food', { configurable: false }); -Object.isFrozen(accessor); // === true - -// La forma més fàcil, però, d'aconseguir congelar un objecte és cridant el mètode Object.freeze al mateix objecte. -var frozen = { 1: 81 }; -Object.isFrozen(frozen); // === false -Object.freeze(frozen); -Object.isFrozen(frozen); // === true - -// Per definició, un objecte congelat no és extensible. -Object.isExtensible(frozen); // === false - -// També per definició, un objecte congelat està segellat. -Object.isSealed(frozen); // === true -</pre> - -<h2 id="Notes">Notes</h2> - -<p>A l'EcmaScript 5, si l'argument passat a aquest mètode no és un objecte (un valor primitiu), llençarà un <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/TypeError" title="L'objecte TypeError representa un error quan el valor no és del tipus esperat."><code>TypeError</code></a>. A l'EcmaScript 6, un argument que no sigui un objecte serà tractat com si fós un objecte congelat ordinari, i simplement el retornarà.</p> - -<pre class="brush: js">Object.isFrozen(1); -// TypeError: 1 no és un objecte (codi EcmaScript 5) - -Object.isFrozen(1); -// true (codi EcmaScript 6) -</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Definició inicial. Implementat a JavaScript 1.8.5.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</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>Suport bàsic</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>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>Suport bàsic</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="Vegeu_també">Vegeu també</h2> - -<ul> - <li>{{jsxref("Object.freeze()")}}</li> - <li>{{jsxref("Object.preventExtensions()")}}</li> - <li>{{jsxref("Object.isExtensible()")}}</li> - <li>{{jsxref("Object.seal()")}}</li> - <li>{{jsxref("Object.isSealed()")}}</li> -</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/keys/index.html b/files/ca/web/javascript/reference/global_objects/object/keys/index.html deleted file mode 100644 index 17d05b181c..0000000000 --- a/files/ca/web/javascript/reference/global_objects/object/keys/index.html +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: Object.keys() -slug: Web/JavaScript/Reference/Global_Objects/Object/keys -translation_of: Web/JavaScript/Reference/Global_Objects/Object/keys ---- -<div>{{JSRef}}</div> - -<p>El mètode <code><strong>Object.keys()</strong></code> retorna un array de les propietats enumerables pròpies de l'objecte, en el mateix ordre en que es donarien en un bucle {{jsxref("Statements/for...in", "for...in")}} (la diferència radica en que el bucle for-in també enumera les propietats que pertanyen a la cadena de prototipus).</p> - -<h2 id="Sintaxi">Sintaxi</h2> - -<pre class="syntaxbox"><code>Object.keys(<var>obj</var>)</code></pre> - -<h3 id="Paràmetres">Paràmetres</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>L'objecte del qual es retornaran les seves propietats pròpies enumerables.</dd> -</dl> - -<h2 id="Descripció">Descripció</h2> - -<p><code>Object.keys()</code> retorna un array els elements del qual són strings que corresponen a les propietats enumerables que pertanyen directament a l'objecte <code>obj</code>. L'ordre de les propietats és el mateix que el donat per recòrrer les propieats de l'objecte de forma manual.</p> - -<h2 id="Exemples">Exemples</h2> - -<pre class="brush: js">var arr = ['a', 'b', 'c']; -console.log(Object.keys(arr)); // console: ['0', '1', '2'] - -// objecte en forma d'array -var obj = { 0: 'a', 1: 'b', 2: 'c' }; -console.log(Object.keys(obj)); // console: ['0', '1', '2'] - -// objecte en forma d'array amb les claus ordenades de manera aleatòria -var an_obj = { 100: 'a', 2: 'b', 7: 'c' }; -console.log(Object.keys(an_obj)); // console: ['2', '7', '100'] - -// getFoo és una propietat no enumerable -var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } }); -my_obj.foo = 1; - -console.log(Object.keys(my_obj)); // console: ['foo'] -</pre> - -<p>Si esteu interessats en obtenir totes les propietats, no només les enumerables, vegeu {{jsxref("Object.getOwnPropertyNames()")}}.</p> - -<h2 id="Notes">Notes</h2> - -<p>A l'EcmaScript 5 llençarà una excepció <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/TypeError" title="L'objecte TypeError representa un error quan el valor no és del tipus esperat."><code>TypeError</code></a> si el paràmetre <code>obj</code> no és un objecte. A l'EcmaScript 6 el paràmetre serà forçat al tipus <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Object" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>Object</code></a>.</p> - -<pre class="brush: js">Object.keys("foo"); -// TypeError: "foo" no és un objecte (codi EcmaScript 5) -Object.keys("foo"); -// ["0", "1", "2"] (codi EcmaScript 6) -</pre> - -<h2 id="Polyfill">Polyfill</h2> - -<p>Per a afegit una funció compatible amb <code>Object.keys</code> en plataformes que no la suporten de forma nativa, podeu utilitzar el codi següent:</p> - -<pre class="brush: js">// Tret de https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys -if (!Object.keys) { - Object.keys = (function() { - 'use strict'; - var hasOwnProperty = Object.prototype.hasOwnProperty, - hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'), - dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ], - dontEnumsLength = dontEnums.length; - - return function(obj) { - if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) { - throw new TypeError('Object.keys called on non-object'); - } - - var result = [], prop, i; - - for (prop in obj) { - if (hasOwnProperty.call(obj, prop)) { - result.push(prop); - } - } - - if (hasDontEnumBug) { - for (i = 0; i < dontEnumsLength; i++) { - if (hasOwnProperty.call(obj, dontEnums[i])) { - result.push(dontEnums[i]); - } - } - } - return result; - }; - }()); -} -</pre> - -<p>Cal destacar que aquest codi inclou també propietats no enumerables a Internet Explorer 7 (i possiblement també a Internet Explorer 8), al passar un objecte pertanyent a una altra finestra.</p> - -<p>Per a una versió simplificada Polyfill per a navegadors vegeu <a href="http://tokenposts.blogspot.com.au/2012/04/javascript-objectkeys-browser.html">Compatibilitat de navegadors amb la funció Object.keys de JavaScript</a>.</p> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentaris</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.2.3.14', 'Object.keys')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Definició inicial. Implementat a 1.8.5.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-object.keys', 'Object.keys')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</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>Suport bàsic</td> - <td>{{CompatChrome("5")}}</td> - <td>{{CompatGeckoDesktop("2.0")}}</td> - <td>{{CompatIE("9")}}</td> - <td>{{CompatOpera("12")}}</td> - <td>{{CompatSafari("5")}}</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>Suport bàsic</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="Vegeu_també">Vegeu també</h2> - -<ul> - <li><a href="/en-US/docs/Enumerability_and_ownership_of_properties">Enumerabilitat i possessió de propietats</a></li> - <li>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</li> - <li>{{jsxref("Object.create()")}}</li> - <li>{{jsxref("Object.getOwnPropertyNames()")}}</li> -</ul> |