Tavoite-J

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 9. syyskuuta 2017 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .
Tavoite-J
Kieliluokka moniparadigma : heijastava , oliosuuntautunut , toiminnallinen , pakottava , komentosarja
Esiintyi 2008
Kehittäjä 280 North Inc.
Tyyppijärjestelmä dynaaminen , heikko , ankka
Vaikutettu Objective-C , JavaScript
Lisenssi LGPL
Verkkosivusto cappuccino.org

Objective-J  on ohjelmointikieli, joka on kehitetty osana Cappuccinoa  , verkkosovelluskehystä. Sen syntaksi on lähes identtinen Objective-C :n kanssa . Objective-J on JavaScriptille sama kuin Objective-C C-ohjelmointikielelle: se on tiukka mutta kompakti superjoukko. Objective-J lisää perinteisen periytymisen ja Smalltalk/Objective-C-tyylisen dynaamisen lähetyksen JavaScriptiin. Puhtaalla Javascriptillä on jo oliosuuntauksen ja periytymisen käsite prototyyppityyppisenä kielenä, mutta Objective-J lisää JavaScriptiin mahdollisuuden käyttää luokkapohjaista ohjelmointia.

Objective-J:llä kirjoitetut ohjelmat vaativat esikäsittelyn, ennen kuin JavaScript-virtuaalikone voi suorittaa ne verkkoselaimessa. Tämä vaihe voidaan suorittaa suorituksen aikana verkkoselaimessa käyttämällä kääntäjää, joka kääntää Objective-J-ohjelmat puhtaaksi JavaScript-koodiksi. Objective-J-kääntäjä on kirjoitettu JavaScriptillä, joten Objective-J-ohjelmien käyttöönotto ei vaadi erityisiä selaimen lisäosia.

Sovellus

Objective-J:n ensimmäinen täysimittainen käyttö liittyy Cappuccino-kehykseen perustuvan 280Slides -verkkosovelluksen luomiseen. Vaikka Objective-J:tä voidaan käyttää (ja kehittää) Cappuccinosta riippumatta, Objective-J luotiin ensisijaisesti tukemaan Cappuccino-pohjaista verkkokehitystä.

Syntaksi

Objective-J on JavaScriptin pääjoukko, mikä tarkoittaa, että mikä tahansa kelvollinen JavaScript-koodi on myös kelvollinen Objective-J-koodi. Seuraava esimerkki havainnollistaa Objective-J-määritelmää luokkalle nimeltä Address. Tämä luokka laajentaa CPObject-juuriluokkaa, jolla on samanlainen rooli kuin NSObjectilla Objective-C:ssä. Pääobjektin nimeä lukuun ottamatta tämä koodi on myös esimerkki Objective-C:n luokkamäärityksestä.

@toteutusosoite : CPObject { CPSstring name ; _ CPString kaupunki ; } - ( id ) initWithName: ( CPString ) aNimi kaupunki: ( CPSstring ) aKaupunki { itse = [ super init ]; nimi = aNimi ; kaupunki = aCity ; palauttaa itsensä ; } - ( void ) setName: ( CPString ) aName { nimi = aNimi ; } - ( CPString ) nimi { return name ; } + ( id ) newAddressWithName: ( CPString ) aNimi kaupunki: ( CPString ) aKaupunki { return [[ self alloc ] initWithName : aname city : aCity ]; } @loppu

Kuten Objective-C:n kohdalla, luokkamenetelmien ja ilmentymämenetelmien määritelmät alkavat kirjaimilla '+' (plus) ja '-' (miinus).

Muistinhallinta

Toisin kuin Objective-C, Objective-J:n objekteja ei tarvitse vapauttaa, koska JavaScript-roskankerääjä vapauttaa ne automaattisesti.

Muistiinpanot

Katso myös

Linkit