Wird JavaScript durch Referenzen oder durch Werte weitergegeben?
Hier ist ein Beispiel aus _JavaScript: Die guten Seiten_ . Ich bin sehr verwirrt über die my
Parameter für die Funktion Rechteck. Er ist eigentlich undefined
und innerhalb der Funktion neu definiert. Es gibt keine ursprüngliche Referenz. Wenn ich sie aus dem Funktionsparameter entferne, kann die Funktion innerhalb des Bereichs nicht darauf zugreifen.
Ist es ein Abschluss? Aber es wird keine Funktion zurückgegeben.
var shape = function (config) {
var that = {};
that.name = config.name || "";
that.area = function () {
return 0;
};
return that;
};
var rectangle = function (config, my) {
my = my || {};
my.l = config.length || 1;
my.w = config.width || 1;
var that = shape(config);
that.area = function () {
return my.l * my.w;
};
return that;
};
myShape = shape({
name: "Unhnown"
});
myRec = rectangle({
name: "Rectangle",
length: 4,
width: 6
});
console.log(myShape.name + " area is " + myShape.area() + " " + myRec.name + " area is " + myRec.area());