Diskuze: Vytvoreni objektu - javascript
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Toto je bezne vytvareni objektu v js. Ja si tam jeste davam slovo class.
function classFraud()
{
this.name = 'Rich Evans';
this.disease = 'diabetes';
this.health = 23;
}
var rich = new classFraud();
Jinym zpusobem je mozne to delat pres asociativni pole.
var rich = {name: 'Rich Evans', disease:'diabetes', health:23};
var rich2 = {}
rich2.name = 'Rich Evans';
rich2.disease= 'diabetes';
Ale, to je naprd, protoze to nemuzes zopakovat jako class. Nebo tam muzes pridat pomocnou funkci
function classFraud()
{
return {name: 'Rich Evans', disease:'diabetes', health:23};
}
var rich = new classFraud();
Nebo muzes pouzit let-encrypt syntaxy https://developer.mozilla.org/…ence/Classes
class Animal {
speak() {
return this;
}
static eat() {
return this;
}
}
let obj = new Animal();
Nebo si muzes pridat framework, VUE (React, jiny) a psat pomoci VUE. https://blog.openreplay.com/…s-components
@Component
export default class Counter extends Vue {
count = 0;
public increment(): void {
this.count++;
}
public decrement(): void {
this.count--;
}
}
A tohle treba pouzivam ja.
function classApp(props)
{
var selfApp = this;
this.props = {};
this.func = {};
var fnApp = this.func;
this.props.name = 'Rich Evans';
this.props.disease = 'diabetes';
this.props.health = 23;
this.func.add = function() { selfApp.props.health = selfApp.props.health + 54; };
this.func.init = function(props) {
selfApp.props.health = isExist(props.health) ? props.health : 0;
fnApp.add()
};
this.func.init(props);
}
var rich = new classApp( {name: 'Rich Evans', disease:'diabetes', health:23} );
Predam funkci asociativni pole, ze ktereho si vyzobe properties (options). A
pak je predavam dalsim v class. Js tusim stale jeste nema klasicke class, tak se
to musi resit takovymi divnymi berlickami. Doporucuje se prototype. A pokud
pracujes s casovaci (setTimeout, setInterval), tak tam musis pouzivat prave to
self, protoze s thisem si to moc nerozumi
Cili ,this pouzivam jen na prvni
urovni typu construct. Ale snazim se vse presunout spis do funkce init.
Vysvetlit, no, nevim...
function aaa () {...} // definice funkce/objektu jako window.aaa()
var bbb = window['aaa']; // presmerujes ukazatel funkce do promene, ta pak spousti aaa
var bbb = window.aaa;
bbb();
var bbb = 3;
var aaa = function () {...} // definice funkce jako window.aaa()
var bbb = aaa;
bbb();
// no, ale, kdyz potrebujes aby se nepriradil cely ukazatel, ale uplne novy objekt,
// tak se pouziva NEW, ktery vytvori stejny objekt
var aaa = function () {this.src=''} // definice funkce jako window.aaa()
var bbb = new aaa() // viz treba img = new Image()
bbb.src = "123";
var ccc = new aaa()
ccc.src = "456";
alert(bbb.src) // 123
alert(ccc.src) // 456 - bez new by to vypsalo stejna cisla
Cili, js umoznuje vyuzit jakoukoliv funkci jako objekt pro klonovani pomoci
new. A vlastne to slouzi jako class, slovo, ktere nekdo vymyslel az po napsani
javascriptove syntaxe. Ale zatim jeste nikdo js neupravil o class, protoze by
asi museli pridavat furu dalsich pravidel, prepisovat knohovny, ktere js
kontroluji... Nevim, kde to vazne 
A s tim window. Je to tak, ze zakladni objekt je window. Vse, co vytvoris se
da adresovat pres window. Ale, slouzi to take pro prepisovani obsahu v jinych
oknech, ktere si vytvoris jako window.open(), zadavas tam name pres
ktere se do okna dostanes. Totez delat s tagem FRAME. Totez delas u tagu A
href="" target="jmeno_okna". A je mozne takto spoustet funkce z jineho okna
tobe patriciho (neporusijiciho cross-origin). Predavat data (nebo ziskat) treba
z hlavniho okna. (ale je vyhodnejsi mit js v jedinem souboru, kvuli kesovani).
Muze se ti to nekdy hodit, proto jsem to tam zminil.
window.aaa(data);
window.top.aaa(data)
window.honza.aaa(data) // window['honza'].aaa()
function isFunction (ref) {return typeof ref=='function' && ref!=null;}
if ( !isFunction(window['honza']) ) {alert('funkce honza neexistuje')}
Ono se totiz muze stat, ve starych prohlizecich, ze nejaka funkce nefunguje. Nebo zapomenes pridat nejaky js soubor. Nebo smazes. Nebo si prepises promenou na uplne jinou, omylem a zkousis z ni volat funkci. Tak je dobre si obcas zkontrolovat existenci nejake nestandartni funkce nez by se ti program zastavil s errorem v konzoli.
Tady bys to možná mohl pochopit: https://jirkasa.github.io/funkce-v-js/#…
Sorry...ale JS má class a prototype se nepoužívá.
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return 'I have a ' + this.carname;
}
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return this.present() + ', it is a ' + this.model;
}
}
let myCar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML = myCar.show();
To je mozne. Znam jen stary js. Vim, ze tam problehly nedavno (5 let zpet)
nejake zmeny, ale nesleduji to. A take se na ne divam s neduverou. Nove a kdo vi
jak spolehlive. Mnou leta neprozkousene 
Ok, dalsi zpusob, jak to delat.
Zobrazeno 7 zpráv z 7.
