Ich hab mal eine Frage:
Ist es korrekt, dass der "new"-Operator in folgendem Szenario zwar auch weggelassen werden kann, aber es im Prinzip auch nicht stört, falls er dort bleibt?
Mir ist das nämlich bereits mehrfach aufgefallen, weil ich manchmal Klassen geschrieben habe, die etwa so aufgebaut sind:
Und auch dort macht es keinen Unterschied, ob ich den new Operator weglasse (was eigentlich logischer wäre), oder nicht. Mit sieht es jedoch um einiges schöner aus, da man sieht, dass ProgressBar nun eine "eigene Klasse" ist, und obj eine Instanz der Klasse ProgressBar. =)
Ist es korrekt, dass der "new"-Operator in folgendem Szenario zwar auch weggelassen werden kann, aber es im Prinzip auch nicht stört, falls er dort bleibt?
Code:
var anObject = { "bla": "hallo" };
var aClass = function() { return anObject; };
var anInstance = new aClass();
alert( anInstance.bla );
Mir ist das nämlich bereits mehrfach aufgefallen, weil ich manchmal Klassen geschrieben habe, die etwa so aufgebaut sind:
Code:
<html>
<head>
<script>
function ProgressBar() {
var obj = document.createElement( "div" );
obj.style.border = "1px solid #000";
obj.style.width = "0%";
obj.style.height = "24px";
obj.setProgress = function( frac ) {
this.style.width = (frac * 100) + "%";
};
return obj;
}
window.onload = function() {
var obj = new ProgressBar();
document.getElementById( "myDiv" ).appendChild( obj );
obj.setProgress( 0.3 );
};
</script>
</head>
<body>
<div id='myDiv'></div>
</body>
</html>
Und auch dort macht es keinen Unterschied, ob ich den new Operator weglasse (was eigentlich logischer wäre), oder nicht. Mit sieht es jedoch um einiges schöner aus, da man sieht, dass ProgressBar nun eine "eigene Klasse" ist, und obj eine Instanz der Klasse ProgressBar. =)