Heim Web-Frontend js-Tutorial javascript函数重载解决方案分享_基础知识

javascript函数重载解决方案分享_基础知识

May 16, 2016 pm 04:59 PM
函数重载

JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数调用的时候,所有的实参都是保存在了这个数据结构里面,我们定义函数的时候所指定的形式参数其实是为这个数据结构里面的数据定义一个快捷的访问方式。也就是说js所有的函数都是支持无限个参数的,加上数据类型是弱类型,那么JS的函数除了名称就真的没有方法区别了?

办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。

1.根据参数个数重载

js判断传入参数数量可以用arguments.length这个属性来判断;

复制代码 代码如下:


2.根据参数类型重载

判断变量类型的3种方法:
1.用 typeof 语句判断变量类型,typeof语句返回类型对应的字符串。
2.用 instanceof 语句判断变量类型,instanceof语句返回true/false。
3.用 constructor 属性判断变量类型,这个属性返回用来构造该变量的构造函数引用。
对照表:可以看出用 typeof 不能准确的判断出具体的类型,所以我们用 constructor 来进行判断。

typeof string number object function boolean object object
constructor String Number Object Function Boolean Array User Define

复制代码 代码如下:


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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen 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)

So unterscheiden Sie Funktionsüberladung und Umschreiben in C++ So unterscheiden Sie Funktionsüberladung und Umschreiben in C++ Apr 19, 2024 pm 04:21 PM

Das Überladen von Funktionen ermöglicht Funktionen mit demselben Namen, aber unterschiedlichen Signaturen in einer Klasse, während das Überschreiben von Funktionen in einer abgeleiteten Klasse auftritt, wenn eine Funktion mit derselben Signatur in der Basisklasse überschrieben wird, was zu unterschiedlichem Verhalten führt.

Überladen und Umschreiben von PHP-Funktionen Überladen und Umschreiben von PHP-Funktionen Apr 26, 2024 pm 05:12 PM

Das Überladen und Umschreiben von Funktionen wird in PHP unterstützt, um flexiblen und wiederverwendbaren Code zu erstellen. Funktionsüberladung: Ermöglicht die Erstellung von Funktionen mit demselben Namen, aber unterschiedlichen Parametern und ruft die am besten geeignete Funktion basierend auf der Parameterübereinstimmung auf. Umschreiben von Funktionen: Ermöglichen Sie Unterklassen, Funktionen mit demselben Namen zu definieren und Methoden der übergeordneten Klasse zu überschreiben.

Wie gehe ich mit mehrdeutigen Aufrufen bei der Überladung von C++-Funktionen um? Wie gehe ich mit mehrdeutigen Aufrufen bei der Überladung von C++-Funktionen um? Apr 13, 2024 pm 09:18 PM

Mehrdeutige Aufrufe treten auf, wenn der Compiler nicht bestimmen kann, welche überladene Funktion aufgerufen werden soll. Zu den Lösungen gehört die Bereitstellung einer eindeutigen Funktionssignatur (Parametertyp und -nummer) für jede überladene Funktion. Verwenden Sie explizite Typkonvertierungen, um den Aufruf der richtigen Funktion zu erzwingen, wenn die Parametertypen einer überladenen Funktion besser für die Parameter eines bestimmten Aufrufs geeignet sind. Wenn der Compiler den mehrdeutigen Aufruf nicht auflösen kann, wird eine Fehlermeldung generiert und die Funktionsüberladung muss erneut überprüft und geändert werden.

Wie implementiert man eine Funktionsüberladung in Golang? Wie implementiert man eine Funktionsüberladung in Golang? Apr 29, 2024 pm 05:21 PM

Die Go-Sprache unterstützt keine herkömmliche Funktionsüberladung, aber ähnliche Effekte können durch die folgenden Methoden erzielt werden: Verwendung benannter Funktionen: Erstellen eindeutiger Namen für Funktionen mit unterschiedlichen Parametern oder Rückgabetypen mithilfe von Generika (Go1.18 und höher): Erstellen eindeutiger Namen; für verschiedene Parametertypen Eine einzelne Version der Funktion.

Best Practices für das Überladen von C++-Funktionen Best Practices für das Überladen von C++-Funktionen Apr 20, 2024 am 10:48 AM

Best Practices für das Überladen von C++-Funktionen: 1. Verwenden Sie klare und aussagekräftige Namen. 3. Berücksichtigen Sie die Standardparameter. 5. Verwenden Sie SFINAE.

Wie unterscheidet der Compiler im Java-Funktionsüberladungsmechanismus zwischen Parametern mit demselben Stil, aber unterschiedlichen Typen? Wie unterscheidet der Compiler im Java-Funktionsüberladungsmechanismus zwischen Parametern mit demselben Stil, aber unterschiedlichen Typen? Apr 25, 2024 am 10:03 AM

Die Art und Weise, wie der Compiler zwischen überladenen Funktionen unterscheidet: anhand ihrer Signatur, die dem Typ jedes Funktionsparameters entspricht. Selbst wenn der Funktionsname und die Anzahl der Parameter gleich sind, kann der Compiler den Unterschied erkennen, solange die Parametertypen unterschiedlich sind.

Was sind die passenden Regeln für das Überladen von C++-Funktionen? Was sind die passenden Regeln für das Überladen von C++-Funktionen? Apr 27, 2024 am 08:27 AM

Die Übereinstimmungsregeln für C++-Funktionsüberladungen lauten wie folgt: Passen Sie die Anzahl und den Typ der Parameter im Aufruf an. Die Reihenfolge der Parameter muss konsistent sein. Die Konstanz- und Referenzmodifikatoren müssen übereinstimmen. Standardparameter können verwendet werden.

Was sind die Anwendungsszenarien der C++-Funktionsüberladung in tatsächlichen Projekten? Was sind die Anwendungsszenarien der C++-Funktionsüberladung in tatsächlichen Projekten? Apr 26, 2024 pm 01:57 PM

Durch das Überladen von Funktionen können Funktionen mit demselben Namen in C++ unterschiedlich definiert werden, unterschiedliche Arten von Argumenten verarbeiten oder unterschiedliche Vorgänge ausführen. Spezifische Anwendungsszenarien umfassen: Verarbeiten verschiedener Datentypen, um verschiedene Funktionen bereitzustellen und die Lesbarkeit des Codes zu verbessern

See all articles