aboutsummaryrefslogtreecommitdiff
path: root/files/ca/web/javascript/reference/classes/constructor/index.html
blob: 1dc8379405fdb46c2737b68677cf8acff1b5f5c3 (plain)
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
---
title: constructor
slug: Web/JavaScript/Reference/Classes/constructor
translation_of: Web/JavaScript/Reference/Classes/constructor
original_slug: Web/JavaScript/Referencia/Classes/constructor
---
<div>{{jsSidebar("Classes")}}</div>

<h2 id="Resum">Resum</h2>

<p>El mètode <code>constructor</code> és un mètode especial per crear i inicialitzar un objecte creat amb una <code>class</code>.</p>

<h2 id="Sintaxi">Sintaxi</h2>

<pre class="syntaxbox">constructor([arguments]) { ... }</pre>

<h2 id="Descripció">Descripció</h2>

<p>Només hi pot haver un mètode especial am el nom "constructor" en una classe. Es llançarà un {{jsxref("SyntaxError")}}, si la classe conté més d'un cas d'un mètode <code>constructor</code>.</p>

<p>Un constructor pot utilitzar la paraula clau <code>super</code> per cridar el constructor de la classe pare.</p>

<h2 id="Exemples">Exemples</h2>

<p>Aquest fragment de codi es pren de <a href="https://github.com/GoogleChrome/samples/blob/gh-pages/classes-es6/index.html">mostra de classes</a> (<a href="https://googlechrome.github.io/samples/classes-es6/index.html">demostració en viu</a>).</p>

<pre class="brush: js">class Square extends Polygon {
  constructor(length) {
    // Aquí es crida el constructor del pare de la classe amb les longituts
    // proveïdes per l'amplada i l'alçada del polígon
    super(length, length);
    // Nota: En classes derivades, s'ha de cridar super() abans
    // d'utilitzar 'this'. Obviar això causarà un error de referència.
    this.name = 'Square';
  }

  get area() {
    return this.height * this.width;
  }

  set area(value) {
    this.area = value;
  }
}</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('ES6', '#sec-static-semantics-constructormethod', 'Constructor Method')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>Definició inicial.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>

<p>{{CompatibilityTable}}</p>

<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(42.0)}}</td>
   <td>
    <p>Disponible només al canal Nightly  (desde febrer del 2015)</p>
   </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>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>{{CompatUnknown}}</td>
   <td>{{CompatChrome(42.0)}}</td>
   <td>Disponible només al canal Nightly  (desde febrer del 2015)</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<h3 id="Notes_específiques_per_Firefox">Notes específiques per Firefox</h3>

<ul>
 <li>Els constructors estàndards encara no s'han implementat ({{bug(1105463)}})</li>
</ul>

<h2 id="Vegeu_també">Vegeu també</h2>

<ul>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/super">super()</a></li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class">expressió </a><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class"><code>class</code> </a></li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class">declaració </a><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class"><code>class</code> </a></li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Classes">Classes</a></li>
</ul>