webForumDet fria alternativet

Function vs function

JavaScript

2 svar · 463 visningar · startad av dAEk

Medlem sedan feb. 20041 816 inlägg
Frågan#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

Medlem sedan juni 20008 205 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

Medlem sedan feb. 20041 816 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. :)

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)