Mål-J

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 9 september 2017; verifiering kräver 1 redigering .
Mål-J
Språkklass multiparadigm : reflekterande orienterad , objektorienterad , funktionell , imperativ , scripting
Framträdde i 2008
Utvecklaren 280 North Inc.
Typ system dynamisk , svag , anka
Blivit påverkad Objective-C , JavaScript
Licens LGPL
Hemsida cappuccino.org

Objective-J  är ett programmeringsspråk utvecklat som en del av Cappuccino  , ett ramverk för webbapplikationer. Dess syntax är nästan identisk med den för Objective-C . Objective-J är för JavaScript vad Objective-C är för programmeringsspråket C: det är en strikt men kompakt superset. Objective-J lägger till traditionellt arv och Smalltalk/Objective-C-stil dynamisk sändning till JavaScript. Pure Javascript har redan konceptet med objektorientering och arv som ett prototypspråk, men Objective-J lägger till möjligheten att använda klassbaserad programmering till JavaScript.

Program skrivna i Objective-J kräver förbearbetning innan de kan köras av den virtuella JavaScript-maskinen i en webbläsare. Detta steg kan ske under körning i en webbläsare med hjälp av en kompilator som översätter Objective-J-program till ren JavaScript-kod. Objective-J-kompilatorn är skriven i JavaScript, så att distribuera Objective-J-program kräver inga speciella webbläsartillägg.

Applikation

Den första fullskaliga användningen av Objective-J är associerad med skapandet av webbapplikationen 280Slides baserad på Cappuccino-ramverket. Även om Objective-J kan användas (och utvecklas) oberoende av Cappuccino, skapades Objective-J främst för att stödja Cappuccino-baserad webbutveckling.

Syntax

Objective-J är en superset av JavaScript, vilket innebär att all giltig JavaScript-kod också är giltig Objective-J-kod. Följande exempel illustrerar en Objective-J-definition av en klass som heter Address. Denna klass utökar rotklassen CPObject, som spelar en roll som liknar den för NSObject i Objective-C. Med undantag för namnet på rotobjektet är denna kod också ett exempel på en klassdefinition i Objective-C.

@implementation Address : CPObject { CPString name ; CPString stad ; } - ( id ) initWithName: ( CPSstring ) aName stad: ( CPString ) aCity { self = [ super init ]; namn = ett Namn ; stad = aCity ; återvända själv ; } - ( void ) setName: ( CPString ) aName { name = aName ; } - ( CPString ) namn { retur namn ; } + ( id ) newAddressWithName: ( CPString ) aName city: ( CPString ) aCity { return [[ self alloc ] initWithName : aname city : aCity ]; } @slutet

Precis som med Objective-C börjar definitioner av klassmetoder och instansmetoder med '+' (plus) respektive '-' (minus).

Minneshantering

Till skillnad från Objective-C behöver objekt i Objective-J inte frigöras, eftersom de automatiskt frigörs av JavaScript-sopsamlaren.

Anteckningar

Se även

Länkar

  • Lärandemål-J (länk ej tillgänglig) . Cappuccino Web Framework. Arkiverad från originalet den 27 mars 2012.