Was ist der Unterschied zwischen objektorientiert in Javascript und PHP?
WBOY
Freigeben: 2016-08-27 08:54:40
Original
1154 Leute haben es durchsucht
Neu in der Frontend-Entwicklung. Lerne hauptsächlich js. Da ich vor langer Zeit PHP für Unternehmen lernen musste, habe ich eine Zeit lang auch PHP geschrieben, aber immer noch eine prozessorientierte Schreibmethode verwendet, und ich weiß auch, dass PHP Polymorphismus usw. nicht direkt unterstützt. Ich habe nicht viel gefunden, was die objektorientierten Programmierideen der beiden Sprachen vergleicht. Möchten Sie mehr über die Unterschiede im objektorientierten Denken zwischen diesen beiden schwach typisierten Skriptsprachen erfahren? Und was sind die Vor- und Nachteile der beiden Sprachen bei der objektorientierten Programmierung? Ich stelle aufrichtig eine Frage und möchte etwas lernen. Ich möchte wirklich nicht, dass unten keine technischen Antworten stehen, sondern stattdessen mit „PHP ist die beste Sprache“ überschwemmt werden.
Antwortinhalt:
Wer hat Ihnen gesagt, dass PHP keinen Polymorphismus unterstützt?
Der Unterschied zwischen modernem Javascript (ES2015) und modernem PHP (php7) wird tatsächlich kleiner (Mainstream-Sprachen lernen voneinander, je länger sie also sind, desto ähnlicher sind sie). . In Bezug auf OO-Funktionen verfügt PHP über Schnittstellen und Merkmale, einschließlich öffentlich/geschützt/privat. Darüber hinaus verfügt PHP über Typehint. Diese JS sind noch nicht verfügbar. Wenn Sie jedoch großen Wert darauf legen, können Sie TypeScript verwenden. Bis auf die fehlenden Eigenschaften ist alles andere besser als PHP.
js basiert nur auf Objekten. . js ist also tatsächlich nicht objektorientiert im engeren Sinne. Obwohl es2015 kürzlich eine syntaktische Zuckerklasse veröffentlicht hat, was ist eigentlich los? Kommen Sie, drücken Sie F12 und geben Sie „neue Klasse a{}“ ein, wie im Bild gezeigt:
Ignorieren Sie die Zhihu-Rekrutierung und diesen domänenübergreifenden Fehlerbericht. . . . . Die js-Funktion des Prototyps ist ebenfalls vorhanden. Der Name der Konstruktorfunktion ist die Deklaration der Klasse. Glauben Sie, dass die Verwendung einer Klasse objektorientiert ist? . . Die Essenz ist immer noch etwas von vor vielen Jahren.
Für PHP ist die Welt verrückt. Was PHP7 im neuen Jahrhundert betrifft, ist seine Syntax allgemeiner und kann als relativ konventionell objektorientiert angesehen werden. Es ähnelt C JAVAC# und dergleichen und weist nichts Besonderes auf .
In Bezug auf die Ideologie halte ich js für einen seltsamen Ansatz (schweres historisches Gepäck), während PHP eher traditionell ist (aber es wagt, die schlechten Dinge der Vergangenheit zu verwerfen).
Es ist schwierig, den objektorientierten Ansatz von js zu erlernen (allein in der Vererbung gibt es viele Methoden)~~ Dieser Nachteil liegt auf der Hand. Aber PHP ist relativ einfach zu erlernen.
Häufig verwendete Sprachen prototypische Vererbung Javascript ist die einzige -Klassenvererbung in gewissem Sinne eine Teilmenge der prototypischen Vererbung
PHP ist mit allen objektorientierten Sprachen identisch, es scheint jedoch, dass PHP keinen ähnlichen Polymorphismus wie Java aufweist. Dies hindert sie jedoch nicht daran, eine objektorientierte Sprache zu sein. Die objektorientierte Sprache von js unterscheidet sich von allen objektorientierten Sprachen (wie PHP, Java, C#) und ist keine objektorientierte Sprache einer typischen Hochsprache , und seine objektorientierte Sprache basiert auf Funktionen. Das Formular gibt an, dass ein bestimmtes Objekt js direkt in wörtlicher Form deklariert werden kann, während das Objekt einer objektorientierten Hochsprache neu sein muss.
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