Як батько шестирічного віку, який зараз навчає маленьких дітей (і відносно новачка кодуванню без формальної освіти, тому виправлення не потребуватимуться), я думаю, що урок найкраще проходитиме через практичну гру. Якщо 6-річні люди готові зрозуміти, що таке закриття, то вони досить дорослі, щоб самі пройтись. Я б запропонував вставити код в jsfiddle.net, трохи пояснивши його, і залишити їх у спокої, щоб створити унікальну пісню. Текст пояснення нижче, мабуть, більше підходить для 10-річного віку.
function sing(person) {
var firstPart = "There was " + person + " who swallowed ";
var fly = function() {
var creature = "a fly";
var result = "Perhaps she'll die";
alert(firstPart + creature + "\n" + result);
};
var spider = function() {
var creature = "a spider";
var result = "that wiggled and jiggled and tickled inside her";
alert(firstPart + creature + "\n" + result);
};
var bird = function() {
var creature = "a bird";
var result = "How absurd!";
alert(firstPart + creature + "\n" + result);
};
var cat = function() {
var creature = "a cat";
var result = "Imagine That!";
alert(firstPart + creature + "\n" + result);
};
fly();
spider();
bird();
cat();
}
var person="an old lady";
sing(person);
ІНСТРУКЦІЇ
ДАНІ: Дані - це сукупність фактів. Це можуть бути числа, слова, вимірювання, спостереження або навіть просто описи речей. Ви не можете доторкнутися до нього, понюхати його або скуштувати. Ви можете записати його, промовити і почути. Ви можете використовувати його для створення запаху та смаку дотику за допомогою комп'ютера. Комп'ютер може стати корисним за допомогою коду.
КОД: Все написане вище називається кодом . Це написано на JavaScript.
JAVASCRIPT: JavaScript - це мова. Як англійська, або французька, або китайська мови. Є багато мов, які розуміють комп'ютери та інші електронні процесори. Щоб JavaScript розумівся на комп'ютері, йому потрібен перекладач. Уявіть, якщо вчитель, який розмовляє лише російською, приходить викладати ваш клас у школі. Коли вчитель каже "все садятся", клас не зрозумів би. Але, на щастя, у вашому класі є російський учень, який каже всім, що це означає "всі сідайте" - так ви і робите. Клас - це як комп’ютер, а російський учень - перекладач. Для JavaScript найпоширеніший інтерпретатор називається браузером.
БРОЗЕР: Коли ви підключаєтесь до Інтернету на комп’ютері, планшеті чи телефоні, щоб відвідати веб-сайт, ви використовуєте браузер. Приклади, які ви можете знати, - це Internet Explorer, Chrome, Firefox та Safari. Веб-переглядач може зрозуміти JavaScript і сказати комп'ютеру, що йому потрібно робити. Інструкції JavaScript називаються функціями.
ФУНКЦІЯ: Функція в JavaScript схожа на фабрику. Це може бути маленька фабрика, у якій лише одна машина. Або він може містити багато інших маленьких фабрик, кожен з яких має багато машин, які виконують різні роботи. На фабриці одягу в реальному житті у вас можуть з’являтися пачки тканини і бобіни з ниток, а футболки та джинси виходять. Наша фабрика JavaScript обробляє лише дані, вона не може зашивати, просвердлити отвір або розплавити метал. У нашій фабриці JavaScript надходять дані, і дані виходять.
Всі ці дані звучать трохи нудно, але це дійсно дуже круто; у нас може бути функція, яка говорить роботові, що робити на вечерю. Скажімо, я запрошую вас і вашого друга до мого будинку. Вам найбільше подобаються курячі ніжки, мені подобаються сосиски, ваш друг завжди хоче те, що ви хочете, а мій друг не їсть м’яса.
Я не маю часу ходити по магазинах, тому функція повинна знати, що у нас в холодильнику, щоб приймати рішення. Кожен інгредієнт має різний час приготування, і ми хочемо, щоб робот одночасно був гарячим. Нам потрібно надати функції дані про те, що нам подобається, функція може «говорити» з холодильником, а функція може управляти роботом.
Функція зазвичай має ім'я, дужки та дужки. Подобається це:
function cookMeal() { /* STUFF INSIDE THE FUNCTION */ }
Зауважте, що /*...*/
і //
зупиніть код, який читає браузер.
НАЗВА: Ви можете викликати функцію майже будь-яке слово, яке ви хочете. Приклад "cookMeal" типовий для того, щоб з'єднати два слова разом і дати другий з великої літери на початку - але це не обов'язково. У ньому не може бути місця, і воно не може бути числом самостійно.
ПАРТНЕТИ: "Паретки" або ()
це поштові скриньки на дверях фабрики функцій JavaScript або поштова скринька на вулиці для надсилання пакетів інформації на завод. Іноді поштова скринька може бути позначена, наприклад cookMeal(you, me, yourFriend, myFriend, fridge, dinnerTime)
, у такому випадку ви знаєте, які дані потрібно надати.
BRACES: "Брекети", які виглядають так, {}
- це тоновані вікна нашої фабрики. Зсередини фабрики ви можете бачити, а зовні не видно.
ПРИКЛАД ДОГОВОРНОГО КОДУ
Наш код починається зі слова функції , тому ми знаємо , що це один! Тоді назва функції sing - це мій власний опис того, про яку функцію йдеться. Потім дужки () . Дужки завжди є для функції. Іноді вони порожні, і іноді у них є що - то в цьому один має слово .: (person)
. Після цього є такий брекет {
. Це означає початок функції sing () . У нього є партнер, який позначає кінець sing (), як це}
function sing(person) { /* STUFF INSIDE THE FUNCTION */ }
Тож ця функція може мати щось спільне із співом, і може знадобитися певна інформація про людину. Всередині є вказівки робити щось із цими даними.
Тепер, після функції sing () , в кінці коду знаходиться рядок
var person="an old lady";
ЗМІННА: Літери var означають "змінну". Змінна - як конверт. Зовні на цьому конверті позначено "людина". Зсередини міститься аркуш паперу з інформацією, яка потрібна нашій функції, деякі букви та пробіли з'єднані між собою, як шматок рядка (його називають струною), що робить фразу, що читає "бабуся". Наш конверт може містити інші види речей, такі як числа (називаються цілими числами), інструкції (називаються функції), списки (називаються масивами ). Оскільки ця змінна записується поза всіма дужками {}
і через те, що ви можете бачити через тоновані вікна, коли ви знаходитесь всередині брекетів, цю змінну можна побачити з будь-якої точки коду. Ми називаємо це «глобальною змінною».
ГЛОБАЛЬНА ВАРІАБЛЮВАЛЬНА: людина - це глобальна змінна, тобто якщо ви зміните її значення з "старенької леді" на "молоду людину", ця людина буде продовжувати бути молодою людиною, поки ви не вирішите її знову змінити і будь-яка інша функція в з коду видно, що це молода людина. Натисніть F12кнопку або перегляньте параметри Параметри, щоб відкрити консоль розробника браузера та введіть "person", щоб побачити, що це значення. Введіть, person="a young man"
щоб змінити його, а потім знову введіть "людина", щоб побачити, що він змінився.
Після цього у нас є лінія
sing(person);
Цей рядок викликає функцію, ніби викликає собаку
"Давай заспівай , приходь і знайди людину !"
Коли браузер завантажив код JavaScript, який досяг цього рядка, він запустить функцію. Я ставлю рядок у кінці, щоб переконатися, що браузер має всю інформацію, необхідну для його запуску.
Функції визначають дії - основна функція стосується співу. Він містить змінну під назвою firstPart, яка стосується співу про людину, який стосується кожного з віршів пісні: "Був" + людина + "хто проковтнув". Якщо ви введете firstPart в консоль, ви не отримаєте відповіді, оскільки змінна зафіксована у функції - браузер не може бачити все тоновані вікна брекетів.
ЗАКРИТИ: Закриття - це менші функції, які знаходяться всередині великої функції sing () . Маленькі заводи всередині великої фабрики. У кожного вони є свої дужки, що означає, що змінні всередині них не можна побачити ззовні. Ось чому назви змінних ( істота та результат ) можуть повторюватися у закриттях, але з різними значеннями. Якщо ви введете ці імена змінних у вікно консолі, ви не отримаєте її значення, оскільки це приховано двома шарами тонованих вікон.
Усі закриття знають, що таке змінна функція sing () під назвою firstPart , тому що вони можуть бачити з їх тонованих вікон.
Після закриття приходять лінії
fly();
spider();
bird();
cat();
Функція sing () буде викликати кожну з цих функцій у тому порядку, в якому вони задані. Тоді робота функції sing () буде виконана.