Cíl-J

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 9. září 2017; ověření vyžaduje 1 úpravu .
Cíl-J
Jazyková třída multiparadigma : reflektivní , objektově orientovaný , funkční , imperativ , skriptování
Objevil se v 2008
Vývojář 280 North Inc.
Typový systém dynamický , slabý , kachní
Byl ovlivněn Objective-C , JavaScript
Licence LGPL
webová stránka cappuccino.org

Objective-J  je programovací jazyk vyvinutý jako součást Cappuccino  , frameworku webových aplikací. Jeho syntaxe je téměř totožná se syntaxí Objective-C . Objective-J je pro JavaScript tím, čím je Objective-C pro programovací jazyk C: je to přísná, ale kompaktní nadmnožina. Objective-J přidává do JavaScriptu tradiční dědičnost a dynamické odesílání ve stylu Smalltalk/Objective-C. Čistý Javascript již má koncept objektové orientace a dědičnosti jako jazyk prototypového typu, ale Objective-J přidává do JavaScriptu možnost používat programování založené na třídách.

Programy napsané v Objective-J vyžadují předběžné zpracování, než je bude moci spustit virtuální stroj JavaScript ve webovém prohlížeči. Tento krok může probíhat za běhu ve webovém prohlížeči pomocí kompilátoru, který překládá programy Objective-J do čistého kódu JavaScript. Kompilátor Objective-J je napsán v JavaScriptu, takže nasazení programů Objective-J nevyžaduje žádný speciální doplněk prohlížeče.

Aplikace

První plné využití Objective-J je spojeno s vytvořením webové aplikace 280Slides založené na frameworku Cappuccino. Ačkoli lze Objective-J používat (a vyvíjet) nezávisle na Cappuccinu, Objective-J byl primárně vytvořen pro podporu vývoje webu na bázi Cappuccina.

Syntaxe

Objective-J je nadmnožinou JavaScriptu, což znamená, že jakýkoli platný kód JavaScriptu je také platným kódem Objective-J. Následující příklad ilustruje definici Objective-J třídy nazvané Address. Tato třída rozšiřuje kořenovou třídu CPObject, která hraje podobnou roli jako NSObject v Objective-C. S výjimkou názvu kořenového objektu je tento kód také příkladem definice třídy v Objective-C.

@implementation Address : CPObject { CPString name ; CPString město ; } - ( id ) initWithName: ( CPString ) aName město: ( CPString ) aCity { self = [ super init ]; jmeno = jmeno ; město = aMěsto ; vrátit se ; } - ( void ) setName: ( CPString ) aName { name = aName ; } - ( CPString ) name { return name ; } + ( id ) newAddressWithName: ( CPString ) aName city: ( CPString ) aCity { return [[ self alloc ] initWithName : aname city : aCity ]; } @konec

Stejně jako u Objective-C začínají definice metod tříd a metod instance '+' (plus) a '-' (mínus).

Správa paměti

Na rozdíl od Objective-C není nutné objekty v Objective-J uvolňovat, protože je automaticky uvolňuje JavaScript garbage collector.

Poznámky

Viz také

Odkazy