Avatar billede summersun Nybegynder
05. maj 2003 - 09:12 Der er 16 kommentarer og
1 løsning

kode struktur?

nu har jeg set følgene kode struktur et par forskellige steder henne og har ikke helt forstået hvad formålet med det er....

har også diskuteret det med et par venner og de kan heller ikke se meningen med det :/

så jeg håber at der findes nogle kloge hovder herinde som kan give en god forklaring på og evt ved hvor man kan finde mere om sådan noget..!


var ImageRotate = {
    _image:[],
    _inload:0,
    CreateImage : function(path){
        this._ImageInLoad()
        this._image[this._image.length] = new ImageRotate.Image(path)
    },
       
    _ImageInLoad:function(){
        this._inload ++
    },

    _ImageLoaded:function(){
        this._inload --
    }
}
Avatar billede Slettet bruger
05. maj 2003 - 14:09 #1
Jeg må indrømme, at jeg aldrig har set den syntaks før, men man kan jo godt regne sig frem til, hvad den gør.
Det ligner grangiveligt en shorthand måde at lave objekter på. Objektet "ImageRotate" kreeres med arrayet "_image" og tællervariablen "_inload". Derefter laves en funktion, der hører til ImageRotate-objektet, som hedder "CreateImage". Denne funktion skal bruge en parameter, nemlig "path". Funktionen kalder den en af objektets andre funktioner, "_ImageInLoad", og udvider derefter _image-arrayet.
Det virker dog, som om der mangler en funktion til objektet, nemlig "Image", som kaldes i "CreateImage"-funktionen. Er der noget kode, du ikke har vist?
Avatar billede Slettet bruger
05. maj 2003 - 14:11 #2
Det ligner vist noget herfra:
http://www.developer.be/forums/index.cfm/fuseaction/dsp_full_thread/fullthreadid/486/forumID/10.htm

Det viser sig bare at være et objekt, som kan bruges til at rotere billeder.
Avatar billede Slettet bruger
05. maj 2003 - 14:12 #3
Altså et slideshow.
Avatar billede olebole Juniormester
05. maj 2003 - 18:48 #4
<ole>

Det er en helt standard short-hand for en object-constructor - der er forkert kodet. Der mangler en del gåseøjne  :)
Sådan ... så kan du se, hvad de forskellige ting er:

<script type="text/JavaScript">
var ImageRotate = {
    "_image":["davs", "du"],
    "_inload":0,
    "CreateImage" : function(path){
        this._ImageInLoad()
        this._image[this._image.length] = new ImageRotate.Image(path)
    },
       
    "_ImageInLoad":function(){
        this._inload ++
    },

    "_ImageLoaded":function(){
        this._inload --
    }
}

alert(ImageRotate);
alert(ImageRotate._image);
alert(ImageRotate._inload);
alert(ImageRotate.CreateImage);
alert(ImageRotate._ImageInLoad);
alert(ImageRotate._ImageLoaded);

</script>

En instans af objektet indeholder to properties ('_image' og '_inload'), samt tre metoder. Property'en '_image' er et array (jeg har lige fyldt et par elementer i, for at du kan se den i en alert) og '_inload' er formodentlig en boolean (0 eller 1).

Der mangler ganske rigtigt en funktion, der skal definere metoden 'Image()'. Den kan evt. blive klistret på objekt-instansen senere - eller på alle instanser via objektets prototype.
/mvh
</bole>
Avatar billede summersun Nybegynder
05. maj 2003 - 19:30 #5
<edit>
standard short-hand for en object-constructor
</edit>

hvad menes der med short hand?..

ved godt der mangler noget kode.. ville ikk tage det hele med. da jeg bare ville have en forklaring på hvorfor funktionerne var langt ind  i en variable!

kan godt sætte hele kode ind hvis det er :)
Avatar billede olebole Juniormester
05. maj 2003 - 19:38 #6
Ikke nødvendigt med hele koden for min skyld  :)

Du kan konstruere et objekt på forskellig måde i JS:

var mitObjekt = new Object();
mitObjekt.myProp = "noget";

eller:

function makeMyObj() {
  this.myProp = "noget";
  return this;
}
var mitObjekt = new makeMyObj();

eller:

var mitObjekt = {"myProp": "noget"};

Den sidste kaldes en 'short-hand' version ... fordi den er kort  ;o)
/mvh
Avatar billede olebole Juniormester
05. maj 2003 - 19:40 #7
... og funktionerne er ikke lagt ind i en variabel.
Der bliver konstrueret metoder på det resulterende objekt. Disse metoder defineres ved hjælp af funktionerne.
/mvh
Avatar billede olebole Juniormester
05. maj 2003 - 19:50 #8
PS: Property'en '_image' bliver også konstrueret med en short-hand-constructor. Du kan konstruere arrays med:

var mitArray = new Array("element 1", "element 2");

Short-hand-versionen af en array-construtor ser sådan ud:

var mitArray = ["element 1", "element 2"];

Du kan ikke oprette associative arrays med en short-hand-constructor i JS - men da objekter og associative arrays minder så meget om hinanden i JS, kan du 'snyde' lidt og oprette et objekt i stedet:

var mitAssArray = {"farve":"orange", "frugt":"appelsin"};
alert( mitAssArray["farve"] );
alert( mitAssArray["frugt"] );

/mvh
Avatar billede summersun Nybegynder
06. maj 2003 - 16:13 #9
spændende :)

findes der noget på nettet om  den her måde at kode på eller kan man finde bøger som omhandler kunne dette?
Avatar billede olebole Juniormester
06. maj 2003 - 16:46 #10
HHmmmm .... jeg vil mene, de fleste seriøse JS-referencer i bogform vil omtale dette - men nok ikke indgående  :)

En tredie - og langt mere udbredt - short-hand form, er for if/else sætninger:

if (betingelse) {
  var bla = "Opfyldt";
}
else {
  var bla = "Ikke opfyldt";
}
alert(bla);

Kan også skrives:

var bla = (betingelse)? "Opfyldt" : "Ikke opfyldt";
alert(bla);

Og endda:

var bla = betingelse ? "Opfyldt" : "Ikke Opfyldt";
alert(bla);

Denne her:

if (betingelse1) {
  var bla = "Opfyldt 1";
}
else if (betingelse2) {
  var bla = "Opfyldt 2";
}
else {
  var bla = "Ikke opfyldt";
}
alert(bla);

Kan skrives:

var bla = (betingelse1)? "Opfyldt 1" : (betingelse2)? "Opfyldt 2" : "Ikke opfyldt";
alert(bla);

Så har du lidt mere at tygge på  ;o)
/mvh
Avatar billede olebole Juniormester
06. maj 2003 - 16:48 #11
Med 'betingelse' mener jeg f.eks. en eller anden sammenligning:
  if (a > b) { ... osv ...
Avatar billede Slettet bruger
06. maj 2003 - 18:04 #12
Det kan også bruges i andre sammenhænge:

svar = confirm("Vil du trykke OK?");
if (svar)
  alert("Det ville du.");
else
  alert("Det ville du ikke.");

... kan fx skrives om til:

alert((confirm("Vil du trykke OK?")) ? "Det ville du." : "Det ville du ikke.");
Avatar billede summersun Nybegynder
10. maj 2003 - 15:19 #13
kendte godt til den short-hand med  ? :

bare ikke noget jeg har brugt så meget...

men i hvertfald takker for hjælpen :)

hvis i vil have nogle points. så må i lige smide et svar
Avatar billede olebole Juniormester
10. maj 2003 - 15:42 #14
swaaaar  :)
Avatar billede Slettet bruger
10. maj 2003 - 15:44 #15
Nej tak.
Avatar billede summersun Nybegynder
29. maj 2003 - 17:43 #16
hehe :)

så er der point...

fordi vejret er så godt og vi alle er glade idag :)

så håber jeg lige at en af jer er sød at svare på

<BODY NOF="(MB=(DefaultMasterBorder, 665, 50, 4, 10), L=(formLayout, 752, 636))" BGCOLOR="#FFFFFF" TEXT="#000000" TOPMARGIN=0 LEFTMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>

hvad gør det der NOF= ?
Avatar billede olebole Juniormester
07. juni 2003 - 14:57 #17
Undskyld, jeg har været væk et stykke tid  :)
For at besvare det, må jeg se noget mere kode.
/mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester