Function vs function

JavaScript

2 svar · 466 visningar · startad av dAEk

Medlem sedan feb. 20041 816 inlägg
Trådstart#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. :)

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)