⊗jsPmFNOIP 250 of 505 menu

Παράμετροι Εξωτερικής και Εσωτερικής Συναρτήσεων σε JavaScript

Ας κάνουμε έτσι ώστε τόσο η εξωτερική συνάρτηση όσο και η εσωτερική να δέχονται παραμέτρους:

function test(num) { function func(localNum) { console.log(localNum); } }

Ας περάσουμε την παράμετρο της εξωτερικής συνάρτησης στην κλήση της εσωτερικής συνάρτησης:

function test(num) { function func(localNum) { console.log(localNum); // θα εμφανίσει 1 } func(num); //!! περνάμε την παράμετρο } test(1); // περνάμε ως παράμετρο αριθμό

Αποδεικνύεται ότι στην εσωτερική συνάρτηση θα είναι προσβάσιμη η μεταβλητή num ως εξωτερική μεταβλητή από τη γονική συνάρτηση και η μεταβλητή localNum, που είναι τοπική μεταβλητή της εσωτερικής συνάρτησης.

Και οι δύο αυτές μεταβλητές θα έχουν τις ίδιες τιμές:

function test(num) { function func(localNum) { console.log(num); // θα εμφανίσει 1 console.log(localNum); // θα εμφανίσει 1 } func(num); } test(1);

Η διαφορά μεταξύ τους θα είναι η εξής: εάν στην εσωτερική συνάρτηση αλλάξουμε τη μεταβλητή num - θα αλλάξει και στην εξωτερική συνάρτηση:

function test(num) { function func(localNum) { num = 2; // αλλάζουμε τη μεταβλητή num } func(num); // περνάμε την παράμετρο console.log(num); // θα εμφανίσει 2 } test(1); // περνάμε ως παράμετρο αριθμό

Ενώ η μεταβλητή localNum θα είναι τοπική. Οι αλλαγές της δεν θα οδηγούν σε καμία αλλαγή στην εξωτερική συνάρτηση. Επίσης η ίδια η μεταβλητή localNum δεν θα είναι ορατή εξωτερικά της εσωτερικής συνάρτησης:

function test(num) { function func(localNum) { localNum = 2; // αλλάζουμε τη μεταβλητή num } func(num); // περνάμε την παράμετρο } test(1); // περνάμε ως παράμετρο αριθμό

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

function test(num) { function func(localNum) { console.log(localNum); } func(num); } test(1);

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

function test(num) { function func(localNum) { console.log(localNum); } func(num + 1); } test(1);

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

function test(num) { function func(localNum) { console.log(num); } func(num + 1); } test(1);

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(num); } test(1);

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(localNum); } test(1);

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

function test(num) { function func(localNum) { num = 2; } func(num); console.log(num); } test(1);
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη