Ich bin neu in JavaScript und versuche, einige der Grundlagen von OOP und simulierten "Klassen" zu verstehen.
Nach Ausführung der letzten Zeile dieses Skripts möchte ich den aufgerufenen this
Objektzeiger in Zeile 4 auf das farm
Objekt verweisen (genau wie es richtig in Zeile 2 und 3 tut).Funktion ändert die Variable "this"
Leider tut es nicht, und ich würde vermuten, dass der this
Objektzeiger stattdessen in Richtung document
zeigt.
var Building = function(cost){
this.cost = cost;
this.printCost = function(){
document.getElementById(this).innerHTML = this.cost;
}
}
var farm = new Building (50);
farm.printCost();
-
<html>
<body>
<p id="farm">
</p>
</body>
</html>
Gibt es eine Möglichkeit, diese Funktion zu erhalten richtiges Objekt zu benutzen? Wenn Sie Verständnisfehler haben, lassen Sie es mich bitte wissen.
Ich bin noch nicht vertraut mit jQuery also, wenn Sie Kern-JavaScript-Syntax bleiben könnte, würde ich es zu schätzen wissen!
JSFiddle: https://jsfiddle.net/7n2of9k7/
'getElementById (this)‘ funktionieren würde nie –
unabhängig Warum nicht einfach 'Zuchtbetrieb als String übergeben funktionieren? – Li357
Übergeben Sie es einfach als String: '... = Funktion (Kosten, Element)' wo Element ist das Element in einfügen. – Li357