cbastus Skrevet 11. august 2011 Del Skrevet 11. august 2011 (endret) Sitter og jobber med litt JS og prøver sakte men sikkert å lære meg god kodeskikk og gode sedvaner. Kom frem til to alternativ for initialisering av objekter som trenger parameter: Alternativ 1 //Object var richMediaWallpaper = function(options) { var defaultOptions = { "wallpaperWidth" : 1280, "wallpaperHeight" : 1024, "wallpaperContainer" : $("<div />") }, requiredOptions = { "contentContainer" : '', "contentWidth" : '', "wallpaperUrl" : '' } options = $.extend(requiredOptions, defaultOptions, options); options = $.extend(options.contentContainer.width(), options); /*...*/ } //Call new richMediaWallpaper( { "contentContainer" : $("#doc"), "wallpaperWidth" : 1280, "wallpaperHeight" : 1024, "wallpaperUrl" : "http://www.youtube.com/v/dQw4w9WgXcQ", //Yes. It's Rick Astley... }); Alternativ 2 //Object var richMediaWallpaper = function($contentContainer, wallpaperUrl, wallpaperWidth, wallpaperHeight) { var $wallpaperContainer = $("<div />"); $("body").prepend($wallpaperContainer); var contentWidth = $contentContainer.width(), wallpaperWidth = wallpaperWidth ? wallpaperWidth : 1280; wallpaperHeight = wallpaperHeight ? wallpaperHeight : 1024; /*...*/ } //Call new richMediaWallpaper ( $("#doc"), "http://www.youtube.com/v/dQw4w9WgXcQ", 1280, 900 ); Hva er best practise her? Selv synes jeg alternativ 1 tilbyr mer forståelig kode i selve kallet for de som ikke er drevene på å sjekke hva obcjecter gjør, alternativ 1 inneholder unødvendig mye støy om man er kodeorientert. Hva mener du? Edit: Alternativ 1 er støyete, ikke 2. Endret 15. august 2011 av cbastus Lenke til kommentar
MentosTFM Skrevet 15. august 2011 Del Skrevet 15. august 2011 For min del er Alternativ #2 mest lesbart og lettforståelig. Såvidt meg bekjent er det også best practice. Hva skjer om jQuery plutselig bestemmer seg for å endre på extend-funksjonen? Lenke til kommentar
cbastus Skrevet 15. august 2011 Forfatter Del Skrevet 15. august 2011 Jeg er ganske enig, men det virker som JQuery-eraen har lagt litt opp til at det er greit å initialiseres med array av settings, noe som igjen åpner for muligheten til å dokumentere behovet for variabler på en bedre måte i JS enn før (iom. at man ikke kan deklarere de i funksjonen som function foo(bar, fruite="apple", candy=false){} ) Jeg mente forresten at alternativ 1 inneholdt unødvendig mye støy, iom at den lister opp en rekke datapar som ikke er nødvendige for annet enn å gjøre det lesbart. Det gjør det også unødvendig komplisert å bruke variablene senere i koden da man må skrive options.foo ol. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå