diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
| commit | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch) | |
| tree | a9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/errors/not_a_function | |
| parent | 074785cea106179cb3305637055ab0a009ca74f2 (diff) | |
| download | translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2 translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip | |
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/errors/not_a_function')
| -rw-r--r-- | files/uk/web/javascript/reference/errors/not_a_function/index.html | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/errors/not_a_function/index.html b/files/uk/web/javascript/reference/errors/not_a_function/index.html new file mode 100644 index 0000000000..6130a8bef2 --- /dev/null +++ b/files/uk/web/javascript/reference/errors/not_a_function/index.html @@ -0,0 +1,124 @@ +--- +title: 'TypeError: "x" не є функцією' +slug: Web/JavaScript/Reference/Errors/Not_a_function +tags: + - JavaScript + - TypeError + - Помилки +translation_of: Web/JavaScript/Reference/Errors/Not_a_function +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Повідомлення">Повідомлення</h2> + +<pre class="syntaxbox">TypeError: "x" не є функцією +</pre> + +<h2 id="Тип_помилки">Тип помилки</h2> + +<p>{{jsxref("TypeError")}}.</p> + +<h2 id="Що_пішло_не_так">Що пішло не так?</h2> + +<p>Була с<span id="result_box" lang="uk"><span>проба викликати значення з функції, але значення насправді не є функцією.</span> <span>Деякий код очікує, що ви надішлете функцію, але це не відбулося</span></span>.</p> + +<p>Можило <span id="result_box" lang="uk"><span>в назві функції є опечатка?</span> Можливо <span>метод, що викликаєтся на об'єкті не має цієї функції?</span></span> Наприклад, об'єкти JavaScript не мають функції <code>map</code> , але об'єкт масиву JavaScript має.</p> + +<p><span id="result_box" lang="uk"><span>Є багато вбудованих функцій, які потребують функцій зворотнього виклику.</span> <span>Вам доведеться надати функцію, щоб ці методи працювали належним чином</span></span>:</p> + +<ul> + <li>Коли працюєте з {{jsxref("Array")}} або {{jsxref("TypedArray")}} об'єктами: + <ul> + <li>{{jsxref("Array.prototype.every()")}}, {{jsxref("Array.prototype.some()")}}, {{jsxref("Array.prototype.forEach()")}}, {{jsxref("Array.prototype.map()")}}, {{jsxref("Array.prototype.filter()")}}, {{jsxref("Array.prototype.reduce()")}}, {{jsxref("Array.prototype.reduceRight()")}}, {{jsxref("Array.prototype.find()")}}</li> + </ul> + </li> + <li>Коли працюєте з {{jsxref("Map")}} і {{jsxref("Set")}} об'єктами: + <ul> + <li>{{jsxref("Map.prototype.forEach()")}} та {{jsxref("Set.prototype.forEach()")}}</li> + </ul> + </li> +</ul> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Помилка_в_назві_фунції">Помилка в назві фунції</h3> + +<p>В цьому випадку, <span id="result_box" lang="uk"><span>що трапляється занадто часто, в назві методу є помилка</span></span>:</p> + +<pre class="brush: js example-bad">var x = document.getElementByID('foo'); +// TypeError: document.getElementByID is not a function +</pre> + +<p>Правильна назва функції є <code>getElementByI<strong>d</strong></code>:</p> + +<pre class="brush: js example-good">var x = document.getElementById('foo'); +</pre> + +<h3 id="Функція_що_викликана_на_неправильному_об'єкті">Функція, що викликана на неправильному об'єкті</h3> + +<p><span id="result_box" lang="uk"><span>Для деяких методів вам необхідно надати функцію зворотнього виклику, і вона буде працювати тільки на певних об'єктах</span></span>. Наприклад, використано {{jsxref("Array.prototype.map()")}}, який буде працювати лише з об'єктом {{jsxref("Array")}}.</p> + +<pre class="brush: js example-bad">var obj = {a: 13, b: 37, c: 42}; + +obj.map(function(num) { + return num * 2; +}); + +// TypeError: obj.map is not a function</pre> + +<p>Використовуйте замість цього масив:</p> + +<pre class="brush: js example-good">var numbers = [1, 4, 9]; + +numbers.map(function(num) { + return num * 2; +}); + +// Array [2, 8, 18] +</pre> + +<h3 id="Функція_має_назву_що_співпадає_з_існуючою_раніш_властивістю"><span class="short_text" id="result_box" lang="uk"><span>Функція має назву, що співпадає з існуючою раніш властивістю</span></span></h3> + +<p><span id="result_box" lang="uk"><span>Іноді під час створення класу ви можете мати властивість та функцію з тим самим ім'ям.</span> <span>Після виклику функції компілятор вважає, що функція перестає існувати.</span></span></p> + +<pre class="brush: js example-bad">var Dog = function () { + this.age = 11; + this.color = "black"; + this.name = "Ralph"; + return this; +} + +Dog.prototype.name = function(name) { + this.name = name; + return this; +} + + +var myNewDog = new Dog(); +myNewDog.name("Cassidy"); //Uncaught TypeError: myNewDog.name is not a function +</pre> + +<p><span class="short_text" id="result_box" lang="uk"><span>Використовуйте інше ім'я властивості</span></span>:</p> + +<pre class="brush: js example-good">var Dog = function () { + this.age = 11; + this.color = "black"; + this.dogName = "Ralph"; //Using this.dogName instead of .name + return this; +} + +Dog.prototype.name = function(name) { + this.dogName = name; + return this; +} + + +var myNewDog = new Dog(); +myNewDog.name("Cassidy"); //Dog { age: 11, color: 'black', dogName: 'Cassidy' } +</pre> + +<h2 id="Дивись_також">Дивись також</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions">Функції</a></li> +</ul> |
