#javascript #node.js
Вопрос:
Я создаю корзину покупок, когда я начал кодировать, я получаю ReferenceError: inCart is not defined
ошибку:
ReferenceError: inCart is not defined at Object.<anonymous> (C:UsersWin10nodexapp.js:20:1) at Module._compile (internal/modules/cjs/loader.js:1068:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10) at Module.load (internal/modules/cjs/loader.js:933:32) at Function.Module._load (internal/modules/cjs/loader.js:774:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47
'use strict';
const config = require('config');
class Cart {
constructor() {
this.data = {};
this.data.items = [];
this.data.totals = 0;
this.data.formattedTotals = '';
}
}
module.exports = new Cart();
inCart(productID = 0) {
let found = false;
this.data.items.forEach(item => {
if (item.id === productID) {
found = true;
}
});
return found;
}
Ответ №1:
Вам нужно определить функцию с помощью ключевого слова function
function inCart(productID = 0) {}
Или используйте синтаксис функции со стрелкой следующим образом
const inCart = (productId=0) => {};
Пожалуйста, имейте в виду, что функции, определенные с помощью выражений функций, должны быть определены до вызова. Выражения функций-это функции, которые вы определили с помощью ключевого слова переменной следующим образом:
var inCart = function(productID = 0){}
или
let inCart = (productID=0) => {}
Ответ №2:
Вы используете строгий режим 'use strict'
. При использовании строгого режима вы не можете использовать необъявленные переменные, это приведет к ошибке ссылки. Вы должны объявить функцию, используя function
ключевое слово, как показано выше.