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
2 svar · 461 visningar · startad av dAEk
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
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
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. :)