Jestem nowicjuszem w JavaScript i próbuję zrozumieć niektóre z podstaw OOP i symulowanych "klas".
Po uruchomieniu ostatniej linii tego skryptu chciałbym, aby wywołany wskaźnik obiektu this
na linii 4 odnosił się do obiektu farm
(tak jak poprawnie robi w wierszach 2 i 3).Funkcja zmieniająca "tę" zmienną
Niestety tak nie jest i domyślam się, że wskaźnik obiektu this
zamiast tego wskazuje na document
.
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>
Czy istnieje sposób, aby uzyskać tę funkcję w użyciu właściwej obiekt? Jeśli są jakieś błędy w moim rozumieniu, proszę daj mi znać.
Nie jestem jeszcze zaznajomiony z jQuery, więc jeśli mógłbyś trzymać się głównej składni JavaScriptu, byłbym wdzięczny!
JSFiddle: https://jsfiddle.net/7n2of9k7/
'getElementById (this)” nigdy pracować niezależnie –
Dlaczego po prostu nie przechodzą 'farm' jako ciąg funkcjonować? – Li357
Po prostu wprowadź go jako ciąg znaków: '... = function (cost, element)' gdzie element jest elementem do wstawienia. – Li357