• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Poprawne tworzenie obiektów w js, i uruchomianie metody.

Object Storage Arubacloud
0 głosów
308 wizyt
pytanie zadane 23 sierpnia 2019 w JavaScript przez danielb Bywalec (2,520 p.)
zamknięte 23 sierpnia 2019 przez danielb

Witam serdecznie, mam następujący problem, otóż wgryzam się w obiekty w JS,

i mam z tym dwa zasadnicze problemy:

Nr 1 Jak właściwie powinno się, poprawnie tworzyć obiekt w JS?, pytam o to gdyś, zamarzyłem, że co kurs, to inny w sposób tworzenia obiektów, który jest tym poprawnym?.

Nr 2 mam problem z uruchomieniem, metody w obiekcie, (funkcji), a objawia się to tym, że gdy odwołuje się, do niej to ona, zamiast się wykonać, wyświetla mi całą linię kodu, z nią zawartą, zapewne to jakaś błahostka, jak znam życie :-)

A jak już jesteśmy w temacie, to chciałbym móc mieć w owej metodzie, document.getElementById ewentualnie document.write().

A oto kodzik.

	const myobcj = {
		imie:"Eve",
		nazwisko:"Jonsons",
		wiek:28,
		tekst:function(){
			document.write("test 4");
		}
	}

	document.getElementById("maindiv").innerHTML= myobcj.tekst;

A w HTML-u otrzymuję taki tekst: "function(){ document.write("test 4"); }".

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+2 głosów
odpowiedź 23 sierpnia 2019 przez Chess Szeryf (76,710 p.)
edycja 23 sierpnia 2019 przez Chess
 
Najlepsza

Po pierwsze nie używaj document.write, ma zostawać wyparte przez silniki przeglądarek na tę chwilę nie ma o tym wzmianki, czy ma zostać wyparte z przeglądarek, ale jest przez wielu niezalecane (dziękuję Comandeer za poprawienie mnie). Po drugie odwołujesz się do definicji funkcji, więc parser JS'a potraktował kod jako zwykły tekst. Żeby uzyskać oczekiwany przez Ciebie rezultat, musiałbyś napisać mniej więcej taki kod jak poniżej. Do wywoływania funkcji używa się "()" na końcu nazwy zdefiniowanej funkcji.

<body style="background: darkgoldenrod;">

<div id="maindiv"></div>
const myobcj = {
  name: "Eve",
  family_name: "Jonsons",
  age: 28,
  text1: function() {
    return ("test 4");
  }
}

document.getElementById('maindiv').innerHTML = myobcj.text1();
</body>

Jeśli chcesz coś zwrócić z funkcji, to można zastosować instrukcję "return".

Do sprawdzania właściwości np. funkcji i nie tylko możesz skorzystać z "console.log".

console.log(myobcj.text1);
komentarz 23 sierpnia 2019 przez danielb Bywalec (2,520 p.)

Ech.. było tak jak myślałem, że to jakaś totalna błahostka,, aż wstyd się, przyznać co było nie tak, ale jak trza, to trza, return pomógł dziękuję, i jeszcze zapomniałem dodać przy "myobcj.text1" nawiasów na końcu laugh, i tak wiem, że nie powinno się, stosować document.write, ale wiesz jak, to jest w ferworze walki z kodem, człowiek łapie się wszystkiego.

dziękuję, raz jeszcze.

2
komentarz 23 sierpnia 2019 przez Comandeer Guru (601,110 p.)

ma zostować wyparte przez silniki przeglądarek

Nie, jest częścią standardu HTML i nie jest w żaden sposób zdeprecjonowane. Dobra praktyka związana z jego niestosowaniem wywodzi się z jego zachowania, które może powodować problemy z wydajnością czy dać niespodziewane rezultaty. Jedynie w Chrome przy wolnym łączu może dojść do blokowania zewnętrznych skryptów dołączanych przy pomocy document.write – co zresztą zostało dodane do specyfikacji. W innych wypadkach ta metoda działa bez przeszkód i nikt jej nie usuwa ani nie ma takich planów.

komentarz 23 sierpnia 2019 przez Chess Szeryf (76,710 p.)

Dziękuję bardzo za sprostowanie. Tak tylko "strzeliłem" nie odnosząc się do źródeł.

Gdy w kodzie dodałem document.write, to dostałem poniższą notatkę, którą niedostatecznie zrozumiałem.

(index):33 [Violation] Avoid using document.write(). https://developers.google.com/web/updates/2016/08/removing-document-write

Pozwolę sobie jeszcze dokonać edycji mojej odpowiedzi, by nikogo nie wprowadzać w błąd.

komentarz 24 sierpnia 2019 przez danielb Bywalec (2,520 p.)
Jak ja lubię to forum, właśnie za takie podejście jego społeczności, zawsze znajdzie się, tu jakaś pomocna dusza, a merytoryka i kultura jest na najwyższym poziomie :-) muszę więc częściej zaglądać do specyfikacji.

Podobne pytania

+2 głosów
1 odpowiedź 369 wizyt
pytanie zadane 20 czerwca 2016 w C i C++ przez JAKUBW Nałogowiec (33,470 p.)
0 głosów
1 odpowiedź 801 wizyt
0 głosów
1 odpowiedź 627 wizyt

92,565 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...