Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // урок13
- /*
- функции - это действия
- существует два синтакиса создания функций
- */
- // Function Declaration
- function show(){
- alert(1);
- }
- show();
- // Function Expression
- let showNew = function(){
- alert(2);
- }
- showNew();
- /*
- Функцию можно скопировать в переменную
- */
- function showHi(){
- alert('Hi!');
- }
- let showHiNew = showHi; // переменной функция присваевается без круглых скобок
- showHiNew();
- showHi(); // функция может быть вызвана обеими способами
- // присвоение при Function Expression
- let name = function(){
- alert('Привет')
- };
- let func = name;
- func();
- // при синтаксисе Function Expression после выражения ставиться точка с запятой
- /*
- функции колбеки
- колбек - эта функция переданная в качестве параметра
- колбек - передается в функцию, которая вызовется обратно при необходимости
- колбеки - функции которые вызываются после выполнения основного дейсвия функции
- */
- function ask(question, yes, no){
- if(confirm(question)){
- yes();
- } else {
- no();
- }
- }
- function showOk(){
- alert('Подтверждено');
- }
- function showCansel(){
- alert('Не подтверждено');
- }
- ask('Подтвердите', showOk, showCansel);
- //showOk() showCansel() являются колбеками функции ask
- function ask(question, yes, no){
- if(confirm(question)){
- yes();
- } else{
- no();
- }
- }
- ask(
- 'Подтвердите',
- function(){alert('Подтверждено');},
- function(){alert('Не подтверждено');}
- );
- // function(){} - функция без имени - называется анонимной функцией
- /*
- при Function Declaration
- функция объявляется в основном потоке кода
- и вызвана может быть и до и после объявления функции
- */
- sayHi("Вася");
- function sayHi(name) {
- alert( `Привет, ${name}` );
- }
- /*
- при Function Expression
- функция создается внутри выражения и может вызываться только после обявления
- sayHi("Вася");
- let sayHi = function(name) {
- alert( `Привет, ${name}` );
- };
- такой код вызовет ошибку
- правильно будет вызывать функцию после объявления
- let sayHi = function(name) {
- alert( `Привет, ${name}` );
- };
- sayHi("Вася");
- */
- /*
- при Function Declaration функция доступна только внутри блока в котором обявлена
- let age = prompt("Сколько Вам лет?", 18);
- if (age < 18) {
- function welcome() {
- alert("Привет!");
- }
- } else {
- function welcome() {
- alert("Здравствуйте!");
- }
- }
- welcome();
- будет ошибка
- ------------------------
- при Function Expression
- переменную можно объявить снаружи блока if
- let age = prompt("Сколько Вам лет?", 18);
- let welcome;
- if (age < 18) {
- welcome = function() {
- alert("Привет!");
- };
- } else {
- welcome = function() {
- alert("Здравствуйте!");
- };
- }
- welcome();
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement