Överlagring
8 svar · 589 visningar · startad av ps
Nope. Med tanke på att du inte deklarerar variablerna för olika variabeltyper i javascript funkar det ju inte på samma sätt. Varför vill du metodöverlagra?
------------------
/ J
Nja tycker att det är snyggare att överlagra än att ha 2 olika metodnamn, när det ska bli (nästan) samma resultat.
Jag har faktiskt löst det..
Blev så här:
function lastModified(name, email)
{
var date, time, by, mod;
var name, email;
mod = document.lastModified;
date = mod.substr(6,4) + "-"; //År
date += mod.substr(0, 2) + "-"; //Månad
date += mod.substr(3, 2); //Dag
time = mod.substr(11, 2) + ":"; //Timme
time += mod.substr(14, 2); //Minut
if(name != null && email != null)
by = " av <a href=\"mailto:" + email + "\">" + name + "</a>";
else
by = "";
document.write("Senast uppdaterad " + date + " kl " + time + by + "<br>");
}
Och då kan jag använda:
lastModified("mittnamn", "min@email.com"); och
lastModified();
Vet inte hur mycket fullösning det är, men det fungerar..
------------------
ps » Email » URL
[Redigerat av ps den 18 nov 2001]
Nja tycker att det är snyggare att överlagra än att ha 2 olika metodnamn
Jo, men det problemet uppstår ju inte med ex. JavaScript eftersom du som sagt inte behöver deklarera variablerna. När du skriver en funktion i JavaScript kan du mata den med en integer, text-sträng, bolean eller ingenting, det spelar ingen roll. Det skulle inte fungera på samma sätt i Java eller C. Där har man löst "problemet" med metodöverlagring.
------------------
/ J
Hmm visst är det ett litet problem i JavaScript men inte i andra mer strika språk. Eftersom i Javascript måste man i en metod kolla om man har angett 2 parametrar i det här fallet, och behandla det..
I tex Java så anropas 2 helt olika metoder. Mycket snyggare.
Jaja.. jag har bara proggat JavaScript i ett par dagar så jag har inte precis helkoll på det ännu ;)
------------------
ps » Email » URL
Ordet prototyping dyker helt plötsligt upp i mitt huvud. Har för mig att man kan skapa arv (nästan) med det. Fan det var nåt år sen man höll på med det där.
Jojoxx: Vad säger du? Du som brukar ha koll. :)
------------------
The computer is mightier than the pen, the sword, and usually, the programmer.
Håller inte med dig PS ;) Men jag skulle tro att det beror på att man lätt blir lite "försoffad" med det program/scriptspråk man håller på med primärt. Du ser det som en brist att du inte kan ha duplikat av metoder, jag ser det som en fördel att du inte behöver. Exempel, du skriver en funktion och vill kunna anropa den olika variabeltyper eller anropa den helt utan argument. I JavaScript kan du göra detta med en funktion, i Java får du använda dig av metodöverlagring med flera metoder som gör samma sak men anpassade efter vad de förväntas bli anropade med. Vad är det för snyggt med det?
Prototyping är en annan intressant funktion men inte med direkt anknytning till metodöverlagring.
------------------
/ J
[Redigerat av Jojoxx den 18 nov 2001]
Om man gör lite större grejer och dokumenterar så blir det mycket tydligare med flera metoder eftersom man ser precis vad varje gör.
I den metod som jag skriver om i första inlägget så ska jag göra nästan samma sak, men det är ju inte alls säkert att man vill göra det. Som sagt tydligare med flera metoder ;)
I JavaScript måste man göra kollar i metoden för att se vad man får in och sen göra olika saker beroende av det.
Jag tycker att det är luddigt att man inte kan definiera variabler i JavaScript, men det är inte mycket jag kan göra åt saken där ;)
------------------
ps » Email » URL
I den metod som jag skriver om i första inlägget så ska jag göra nästan samma sak, men det är ju inte alls säkert att man vill göra det. Som sagt tydligare med flera metoder
Ehh... I så fall tycker jag att det är en otydlig programmerare bakom tangentbordet. Anledningen till att man skulle vilja ge en funktion samma namn borde väl vara att de skall göra samma sak. Vad är det för tydligt med att ge 2 funktioner namnet "addera" när den ena adderar och den andra returnerar pi? ;) Nej, du får nog hitta på ett bättre exempel för att få mig att ändra åsikt.
Jag tycker att det är luddigt att man inte kan definiera variabler i JavaScript, men det är inte mycket jag kan göra åt saken där
Jag har hört flera pascal/c/java programmerare säga samma sak, men jag tror som sagt på att det är mer en vanesak. Ett språk där du inte behöver deklarera variablerna är (imho) enklare att programmera i, men blir å andra sidan långsammare att interpretera.
------------------
/ J