Heim > Web-Frontend > Front-End-Fragen und Antworten > Welche Möglichkeiten gibt es, Javascript-Funktionen zu schreiben?

Welche Möglichkeiten gibt es, Javascript-Funktionen zu schreiben?

青灯夜游
Freigeben: 2023-01-04 09:36:10
Original
2585 Leute haben es durchsucht

So schreiben Sie Funktionen: 1. „function function name(){}“ 2. „var function name = function(){}“ 3. „(function(){...})()“; 4. „ (function(){…}())“; 5. „$(function(){})“.

Welche Möglichkeiten gibt es, Javascript-Funktionen zu schreiben?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Javascript ist lockerer als andere Programmiersprachen, daher ist Javascript-Code voller seltsamer Schreibweisen, und manchmal ist er nur verschwommen. In diesem Artikel geht es darum, wie man JavaScript-Funktionen schreibt.

In Javascript gibt es nur Objekte. Variablen sind Objekte und Funktionen sind ebenfalls Objekte. Solange Sie wissen, was Ihr Objekt ist, verwenden Sie es einfach so, wie es verwendet wird.

Javascript ist universell für schwache Typen, Objekte, Instanzen, Funktionen und Methoden. Die Unterscheidung muss nicht so klar sein.

1. Konventionelles Schreiben:

// 函数的定义
function foo() {
    alert('常规写法');
}
// 函数的调用
foo()
Nach dem Login kopieren

Dieses Schreiben ist die bekannteste und am einfachsten zu verstehende Schreib- und Aufrufmethode, dann lesen Sie weiter

2. Anonymes Funktionsschreiben

// 函数的定义
var foo = function(){
    alert('匿名函数定义');
}
// 函数的调用
foo()
Nach dem Login kopieren

Die Funktionsdefinition wird anonymisiert, wodurch die Benennung entfällt. Gleichzeitig wird die Variable zum Synonym für die Funktion. Siehe

3

// 定义
var test = {
    fun1: function(){  },
    fun2: function(){  }
}
// 调用
test.fun1();
test.fun2();
Nach dem Login kopieren

Variablen in Javascript sind sehr mächtig und können viele Dinge darstellen.

4. Fügen Sie dem Objekt im Konstruktor Methoden hinzu

// 给对象添加方法
var fun = function(){ };  // 定义函数对象
fun.prototype.test = function(){ 
    alert('这是在在foo函数上的原始对象上添加test方法,构造函数中用到');
}

// 调用
var myfun = new fun(); // 创建对象
myfun.test(); // 调用对象属性
Nach dem Login kopieren

Fügen Sie Methoden über das Schlüsselwort „prototyp“ hinzu.

5. Selbstausführende Funktionen ( function(){…} )() und ( function(){…} () )

Die zuvor erwähnte Funktionsdefinition ist von der Aufrufzeit getrennt werden hier sofort besprochen und gemeinsam umgesetzt.

( function(){…} )() und ( function(){…} () ) sind zwei gängige Methoden zum Schreiben von JavaScript-Funktionen zur sofortigen Ausführung. Zuerst dachte ich, es sei eine anonyme Funktion in Klammern, und Dann wurde am Ende eine Klammer hinzugefügt, um schließlich den Zweck zu erreichen, sie sofort nach der Definition der Funktion auszuführen. Um die unmittelbare Ausführung von Funktionen zu verstehen, müssen Sie zunächst einige grundlegende Funktionskonzepte verstehen.

Funktionsdeklaration, Funktionsausdruck, anonyme Funktion

Funktionsdeklaration: function fnName () {…}; Verwenden Sie das Schlüsselwort function, um eine Funktion zu deklarieren, und geben Sie dann einen Funktionsnamen an, der Funktionsdeklaration genannt wird.

Funktionsausdruck var fnName = function () {...}; Verwenden Sie das Schlüsselwort function, um eine Funktion zu deklarieren, aber geben Sie der Funktion keinen Namen. Schließlich wird die anonyme Funktion einer Variablen namens Function zugewiesen Ausdruck, die häufigste Form der Funktionsausdrucksyntax.

Anonyme Funktion: Funktion () {}; Verwenden Sie das Schlüsselwort function, um der Funktion einen Namen zu geben. Daher wird sie als anonyme Funktion bezeichnet. Es gibt viele anonyme Funktionen Wenn Funktionen einer Variablen zugewiesen werden, wird eine Funktion erstellt, die einem Ereignis zugewiesen wird, ein Ereignishandler wird oder einen Abschluss erstellt usw.

Der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck besteht darin, dass

1 Wenn die Javascript-Engine den Javascript-Code analysiert, „Funktionsdeklaration“ wird die Funktionsdeklaration in die aktuelle Ausführungsumgebung (Bereich) verschoben, während der Funktionsausdruck Der Ausdruck muss warten, bis die Javascirtp-Engine die Zeile erreicht, in der sie ausgeführt wird, und analysiert dann den Funktionsausdruck Zeile für Zeile von oben nach unten

2. Sie können nach dem Funktionsausdruck Klammern hinzufügen, um die Funktionsdeklaration sofort aufzurufen nicht möglich ist, können Sie Called nur in der Form von fnName() verwenden. Hier sind zwei Beispiele für den Unterschied.

// 方式1: ( function(){…} () )
(
     function(){alert('hello world, I am coming');}()
);
// 函数有参数的情况,有时为确保执行,前面加;
// 看到别人的插件,你会发现人家开头处加了一个";",这样就算页面js有错误,加载运行他的插件也能保证运行,如:
;(function(e){alert(e);}('hello world'));

// 方式2:( function(){…} )()
(function(){alert('hello');})();

// 有时在前面加运算符,常见的是!与void
!function(){alert('hello');}();
void function(){alert(2);}();
Nach dem Login kopieren

6 $(function(){}) Schreibweise

$ (function(){/<em>…</em>/}); ist $ Die Abkürzung von (document).ready(function(){/<em>…</em>/}) ist eine Rückruffunktion, die nach dem Laden des DOM ausgeführt wird und nur einmal ausgeführt wird.

$( document ).ready(function() {
   console.log( "ready!" );
});
Nach dem Login kopieren
$ (function(){/<em>…</em>/});$(document).ready(function(){/<em>…</em>/})的简写形式,是在DOM加载完成后执行的回调函数,并且只会执行一次。

$(function() {
   console.log( "ready!" );
});
Nach dem Login kopieren

与如下写法等价

rrreee

在一个页面中不同的js中写的$(function(){/<em>…</em>/}); entspricht der folgenden Schreibmethode

rrreee

$(function(){/<em>…</em>/}); Funktion, die in verschiedenen JS auf einer Seite geschrieben ist, wird ausgeführt in Reihenfolge entsprechend der Reihenfolge von js. 【Empfohlenes Lernen:

Javascript-Tutorial für Fortgeschrittene🎜】🎜

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Javascript-Funktionen zu schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage