webForumDet fria alternativet

Function vs function

2 svar · 461 visningar · startad av dAEk

dAEkMedlem sedan feb. 20041 777 inlägg
#1

Släng ett öga på följande kodexempel:

String.prototype.startsWith = function(){}

vs

String.prototype.startsWith = new Function(){}

Vad är det som skiljer dem åt? Det känns som att jag har missat något fundamentalt. :r

spangoMedlem sedan juni 20006 147 inlägg
#2

new Function(){} funkar inte, det är skillnaden ;) Däremot kan man säga new Function() (utan måsvingarna). Function (med stort F) är klassen som alla funktioner ärver från, och att newa den utan argument är ungefär samma sak som att säga function(){} (d.v.s. använda nyckelordet med litet f), fast dummare. Finns egentligen ingen anledning att newa Function om man inte har en kodsnutt i en sträng som man vill göra en funktion av:

var code = prompt("Skriv in lite kod:", "alert('roflcopter');");
var theFunction = new Function(code);
theFunction();

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Function

dAEkMedlem sedan feb. 20041 777 inlägg
#3

Jag såg att vi hade ett par sådana Functioner i en javascript-fil på jobbet; själv har jag aldrig använt mig av Function. Det är lätt att börja fundera om man heter David och tyvärr fanns det ingen kvar att fråga.

spango skrev:

Finns egentligen ingen anledning att newa Function om man inte har en kodsnutt i en sträng som man vill göra en funktion av:[...]

Man tackar. Precis vad jag ville höra. :)

128 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)