Heim Web-Frontend js-Tutorial Detaillierte Erläuterung der Erstellung von JavaScript-Funktionsobjekten, Parametern und Bereichsinstanzen

Detaillierte Erläuterung der Erstellung von JavaScript-Funktionsobjekten, Parametern und Bereichsinstanzen

Jul 25, 2017 am 11:29 AM
javascript js 参数

" „Konstruktor“:

Die Parameterliste kann so viele Parameter enthalten, wie Sie möchten, gefolgt vom Funktionskörper, zum Beispiel:


gibt das Ergebnis aus:

6
var funcName = new Function( [argname1, [... argnameN,]] body );
Nach dem Login kopieren
Aber wer würde eine Funktion auf so schwierige Weise erstellen? Wenn der Funktionskörper komplex ist, ist das Zusammenfügen des Strings sehr aufwändig, sodass JavaScript eine Art Syntaxzucker bereitstellt. Das heißt, durch Literale So erstellen Sie eine Funktion:

var add = new Function("x", "y", "return(x+y)"); 
print(add(2, 4));
Nach dem Login kopieren

oder:


Tatsächlich ist es wahrscheinlicher, dass ein solcher syntaktischer Zucker von Programmierern in traditionellen Bereichen missverstanden wird Das Schlüsselwort function ruft Function auf, erstellt ein neues Objekt und übergibt die Parameterliste und den Funktionskörper genau an den Konstruktor der Funktion.

Im Allgemeinen bedeutet die Deklaration eines Objekts im globalen Bereich (der Bereich wird im nächsten Abschnitt ausführlich vorgestellt) lediglich die Zuweisung eines Werts zu einem Attribut. Beispielsweise fügt die Add-Funktion im obigen Beispiel tatsächlich nur einen Wert hinzu Das globale Objekt wird hinzugefügt, und der Attributname lautet „add“, und der Wert des Attributs ist „function(x, y){return x+y;}“. Die Syntax dieser Anweisung lautet wie folgt:
function add(x, y){ 
return x + y; 
}
Nach dem Login kopieren

Nicht anders. Sie alle fügen dem globalen Objekt dynamisch ein neues Attribut hinzu, das ist alles.
var add = function(x, y){ 
return x + y; 
}
Nach dem Login kopieren
Um zu veranschaulichen, dass Funktionen wie andere Objekte als unabhängige Objekte im laufenden JavaScript-System existieren, können wir uns auch dieses Beispiel ansehen:


Da ist nichts falsch, obwohl p wird in Anführungszeichen gesetzt Eine anonyme Funktion (Objekt), kann aber auch Attribute haben, genau wie andere Objekte:
var str = "This is a string";
Nach dem Login kopieren


1.2 Parameter der Funktion
function p(){ 
print("invoke p by ()"); 
} 
p.id = "func"; 
p.type = "function"; 
print(p); 
print(p.id+":"+p.type); 
print(p());
Nach dem Login kopieren
In JavaScript , die Parameter der Funktion Es ist sehr interessant, dass Sie beispielsweise eine beliebige Anzahl von Parametern an eine Funktion übergeben können, auch wenn die Funktion ohne Angabe formaler Parameter deklariert wird, zum Beispiel:


Die Funktion adPrint akzeptiert bei der Deklaration drei Formen der Parameter: die zu druckende Zeichenfolge, die zu druckende Länge und ob sie in Groß- und Kleinbuchstaben umgewandelt werden soll. Beim Aufruf können wir jedoch nacheinander einen Parameter, zwei Parameter oder drei Parameter an adPrint übergeben (Sie können sogar mehr als drei Parameter übergeben, das spielt keine Rolle). Die laufenden Ergebnisse sind wie folgt:
function (){ 
print("invoke p by ()"); 
} 
func:function 
invoke p by ()
Nach dem Login kopieren


Wenn JavaScript Funktionsparameter verarbeitet, unterscheidet es sich tatsächlich von anderen kompilierten Sprachen. Der Interpreter übergibt der Funktion einen arrayähnlichen internen Wert, der als Argumente bezeichnet wird . wird initialisiert. Wenn wir beispielsweise einen Parameter an adPrint übergeben, sind die anderen beiden Parameter undefiniert. Auf diese Weise können wir diese undefinierten Parameter innerhalb der adPrint-Funktion verarbeiten, die nach außen sichtbar gemacht werden können: Wir können jeden Parameter verarbeiten.
function adPrint(str, len, option){ 
var s = str || "default"; 
var l = len || s.length; 
var o = option || "i"; 
s = s.substring(0, l); 
switch(o){ 
case "u": 
s = s.toUpperCase(); 
break; 
case "l": 
s = s.toLowerCase(); 
break; 
default: 
break; 
} 

print(s); 
} 

adPrint("Hello, world"); 
adPrint("Hello, world", 5); 
adPrint("Hello, world", 5, "l");//lower case 
adPrint("Hello, world", 5, "u");//upper case
Nach dem Login kopieren
Wir diskutieren diese magischen Argumente anhand eines anderen Beispiels:


Hello, world 
Hello 
hello 
HELLO
Nach dem Login kopieren
Die Funktion sum hat keine expliziten formalen Parameter und wir können ihr dynamisch so viele Parameter übergeben, wie wir möchten. Also, wie Um auf diese Parameter in der Summenfunktion zu verweisen, müssen Sie das Pseudoarray von Argumenten verwenden:



Funktionsbereich
function sum(){ 
var result = 0; 
for(var i = 0, len = arguments.length; i < len; i++){ 
var current = arguments[i]; 
if(isNaN(current)){ 
throw new Error("not a number exception"); 
}else{ 
result += current; 
} 
} 
return result; 
} 

print(sum(10, 20, 30, 40, 50)); 
print(sum(4, 8, 15, 16, 23, 42));//《迷失》上那串神奇的数字 
print(sum("new"));
Nach dem Login kopieren
Das Konzept des Bereichs In fast allen Mainstream-Sprachen hat es seine Besonderheit: Der Variablenbereich in JavaScript ist innerhalb des Funktionskörpers gültig, und es gibt keinen Blockbereich. In der Java-Sprache können wir den for-Schleifenblock wie diese Subscript-Variablen definieren in:


150 
108 
Error: not a number exception
Nach dem Login kopieren
Und in JavaScript:



JavaScript-Funktionen werden im lokalen Bereich ausgeführt, und Funktionen werden im lokalen Bereich ausgeführt. Der Körper kann auf seine äußere (möglicherweise) zugreifen (globaler Geltungsbereich) Variablen und Funktionen. Der Geltungsbereich von JavaScript ist der lexikalische Geltungsbereich. Der sogenannte lexikalische Geltungsbereich bedeutet, dass sein Geltungsbereich bei der Definition (lexikalische Analyse) und nicht bei der Ausführung bestimmt wird, wie im folgenden Beispiel:

public void method(){ 
for(int i = 0; i < obj1.length; i++){ 
//do something here; 
} 
//此时的i为未定义 
for(int i = 0; i < obj2.length; i++){ 
//do something else; 
} 
}
Nach dem Login kopieren

Wie lautet das Laufergebnis? Anfänger erhalten wahrscheinlich diese Antwort:
function func(){ 
for(var i = 0; i < array.length; i++){ 
//do something here. 
} 
//此时i仍然有值,及I == array.length 
print(i);//i == array.length; 
}
Nach dem Login kopieren


Und das richtige Ergebnis sollte sein:
var str = "global"; 
function scopeTest(){ 
print(str); 
var str = "local"; 
print(str); 
} 
scopeTest();
Nach dem Login kopieren


Weil in der Definition Wenn bei der Funktion „scopeTest“ im Voraus auf die nicht deklarierte Variable str zugegriffen wird und dann die Variable str initialisiert wird, gibt der erste Ausdruck (str) einen undefinierten Fehler zurück. Warum greift die Funktion zu diesem Zeitpunkt nicht auf die externe str-Variable zu? Dies liegt daran, dass nach Abschluss der lexikalischen Analyse beim Erstellen der Bereichskette die in der Funktion definierte var-Variable in die Kette eingefügt wird, also str Im gesamten Funktionsumfang sind alle sichtbar (von der ersten bis zur letzten Zeile des Funktionskörpers). Da die str-Variable selbst undefiniert ist, wird das Programm sequentiell ausgeführt und gibt in der ersten Zeile undefiniert zurück Wert auf str, also die dritte Zeile Der print(str) der Zeile gibt „local“ zurück.
global 
local
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Erstellung von JavaScript-Funktionsobjekten, Parametern und Bereichsinstanzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

i9-12900H Parameterbewertungsliste i9-12900H Parameterbewertungsliste Feb 23, 2024 am 09:25 AM

Der i9-12900H ist ein 14-Kern-Prozessor und die Threads sind ebenfalls sehr hoch. Einige Parameter wurden verbessert und können den Benutzern ein hervorragendes Erlebnis bieten . Überprüfung der Parameterbewertung des i9-12900H: 1. Der i9-12900H ist ein 14-Kern-Prozessor, der die q1-Architektur und die 24576-KB-Prozesstechnologie übernimmt und auf 20 Threads aktualisiert wurde. 2. Die maximale CPU-Frequenz beträgt 1,80! 5,00 GHz, was hauptsächlich von der Arbeitslast abhängt. 3. Im Vergleich zum Preis ist es sehr gut geeignet. Das Preis-Leistungs-Verhältnis ist sehr gut und für einige Partner, die eine normale Nutzung benötigen, sehr gut geeignet. i9-12900H Parameterbewertung und Leistungsbenchmarks

Sicherheitsüberprüfung des C++-Funktionsparametertyps Sicherheitsüberprüfung des C++-Funktionsparametertyps Apr 19, 2024 pm 12:00 PM

Die Sicherheitsüberprüfung von C++-Parametertypen stellt durch Überprüfungen zur Kompilierungszeit, Laufzeitüberprüfungen und statischen Behauptungen sicher, dass Funktionen nur Werte erwarteter Typen akzeptieren, wodurch unerwartetes Verhalten und Programmabstürze verhindert werden: Typüberprüfung zur Kompilierungszeit: Der Compiler überprüft die Typkompatibilität. Überprüfung des Laufzeittyps: Verwenden Sie Dynamic_cast, um die Typkompatibilität zu überprüfen und eine Ausnahme auszulösen, wenn keine Übereinstimmung vorliegt. Statische Behauptung: Typbedingungen zur Kompilierzeit geltend machen.

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen Dec 18, 2023 pm 03:39 PM

Mit der rasanten Entwicklung der Internetfinanzierung sind Aktieninvestitionen für immer mehr Menschen zur Wahl geworden. Im Aktienhandel sind Kerzendiagramme eine häufig verwendete Methode der technischen Analyse. Sie können den sich ändernden Trend der Aktienkurse anzeigen und Anlegern helfen, genauere Entscheidungen zu treffen. In diesem Artikel werden die Entwicklungskompetenzen von PHP und JS vorgestellt, der Leser wird zum Verständnis des Zeichnens von Aktienkerzendiagrammen geführt und es werden spezifische Codebeispiele bereitgestellt. 1. Aktien-Kerzendiagramme verstehen Bevor wir uns mit dem Zeichnen von Aktien-Kerzendiagrammen befassen, müssen wir zunächst verstehen, was ein Kerzendiagramm ist. Candlestick-Charts wurden von den Japanern entwickelt

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Die Beziehung zwischen js und vue Die Beziehung zwischen js und vue Mar 11, 2024 pm 05:21 PM

Die Beziehung zwischen js und vue: 1. JS als Eckpfeiler der Webentwicklung; 2. Der Aufstieg von Vue.js als Front-End-Framework; 3. Die komplementäre Beziehung zwischen JS und Vue; Vue.

Erweiterte Verwendung von Referenzparametern und Zeigerparametern in C++-Funktionen Erweiterte Verwendung von Referenzparametern und Zeigerparametern in C++-Funktionen Apr 21, 2024 am 09:39 AM

Referenzparameter in C++-Funktionen (im Wesentlichen Variablenaliase; durch Ändern der Referenz wird die Originalvariable geändert) und Zeigerparameter (Speichern der Speicheradresse der Originalvariablen, Ändern der Variablen durch Dereferenzierung des Zeigers) werden beim Übergeben und Ändern von Variablen unterschiedlich verwendet. Referenzparameter werden oft verwendet, um Originalvariablen (insbesondere große Strukturen) zu ändern, um Kopieraufwand bei der Übergabe an Konstruktoren oder Zuweisungsoperatoren zu vermeiden. Zeigerparameter werden verwendet, um flexibel auf Speicherorte zu zeigen, dynamische Datenstrukturen zu implementieren oder Nullzeiger zur Darstellung optionaler Parameter zu übergeben.

Parameter der Vlookup-Funktion und Erklärung ihrer Bedeutung Parameter der Vlookup-Funktion und Erklärung ihrer Bedeutung Jan 09, 2024 pm 03:18 PM

Wir müssen bei der Verwendung von Excel die vlookup-Funktion verwendet haben. Es gibt also mehrere solcher Funktionen und wie man jede Funktion konkret verwendet. Soweit dem Editor bekannt ist, gibt es vier Vlookup-Funktionen, nämlich Lookup_value, Table_array, col_index_num und Range_lookup. Lassen Sie mich Ihnen ihre spezifische Verwendung erläutern ~ Die vlookup-Funktion hat mehrere Parameter und die Bedeutung jedes Parameters. Zu den Parametern der vlookup-Funktion gehören Lookup_value, Table_array, col_index_num und Range_lookup, insgesamt 4. 1. Nachschlagen

See all articles