Jump to content
php.lv forumi
  • 0

Daži jautājumi par JavaScript'u


Question

Posted

Tik tikko izdomāju tā nopietnāk pievērsties JavaScript'am. Nekas grūts tur patiešām nav! Kad, pirms diviem trim gadiem, lasīju par JavaScript'u - daudz ko nesapratu. Tagad, "ar nedaudz lielāku smadzeņu podu", atgriežos pie vecā labā JS'a. Un nu lūk daži Jums jautājumi, kurus tā īsti neizpratu...

 

1) Mainīgo var definēt gan var x = 'foo';, gan, vēl vienkāršāk, - x = 'foo';. te nu parādās variables scope. Visi mainīgie, ko esmu definējis ne-funcijā (iespējams arī klasē, bet tik tāl neesmu ticis)... visi tie mainīgie būs globāli. Un, attiecīgi, visi, kurus esmu definējis kādā konkrētā funkcijā, bet izmantojot var būs lokāli. Tātad to "dzīvotspēja" būs tikai pašā funkcijā. Kāda būtu "best practice": izmantot vienmēr var, izmantot to tikai tad, kad rakstu funkcijai lokālo mainīgo... vai kā savādāk?

 

P.S. Pievienošu vēl... kad būs.

Recommended Posts

  • 0
Posted

Pats pārbaudīju... Viss, ko rakstīju atbilst taisnībai. Pamēģini pats, briedi!

 

x = 'foo';

 

...tas pats, kas:

 

var x = 'foo';

  • 0
Posted

Pats pārbaudīju... Viss, ko rakstīju atbilst taisnībai. Pamēģini pats, briedi!

 

x = 'foo';

 

...tas pats, kas:

 

var x = 'foo';

 

strādāt ta strādās, bet tas nav labais stils + normāla IDE jau bļaus, ka tāds mainīgais nav definēts.

  • 0
Posted

emm .. vispār jau javascript nav tāda lieta kā "klases".

Un kā tieši tu definē mainigos ārpus funkcijas , ja visam tavam kodam vajadzētu atrasties iekš

(function(){

/* kods nāk te */

})();

  • 0
Posted

Wintermute, kā lai Es zinu? Tāpēc jau prasu. Pastāsti, lūdzu, kāpēc Manam kodam ir jāatrodas starp...

 

(function(){

/* kods nāk te */

})();

  • 0
Posted

emm .. vispār jau javascript nav tāda lieta kā "klases".

Kaa nav??

Ir un kaa vel.

Viss DOM tachu ir OBJEKTI peec definiicijas, attieciigi JS perfekti ar tiem maaak apieties..

P.S. nu nesauc vinjas par klassem, bet objekti ir.

  • 0
Posted (edited)

Pirmo reizi definējot mainīgo, to jādara ar var.

var a = 1;
function b(){
 a = 2;
}
b();
alert(a); // 2

var c = 1;
function d(){
 var c = 2;
}
d();
alert(c); // 1

function e(){
 var f = 2;
}
e();
alert(f); // f is not defined

 

Kāpēc lai javascript'ā nebūtu klases, ja js ir "prototype-based object-oriented scripting language"? Kaut vai tas pats Date objekts nav klase?

Edited by marcis
  • 0
Posted

Cik zinu... objekts jau pats nav klase. No klases rodas objekts... Vai JS'ā var veidot pats Savas klases, lai iznāktu kas līdzīgs Date objektam?

  • 0
Posted


var Class = function() {
var privateProperty = 'private';
this.publicProperty = 'public';

var privateMethod = function() {
	alert('Private Property: ' + privateProperty);
}

this.publicMethod = function() {
	alert('Public Property: ' + this.publicProperty);
}
}

var o1 = new Class;
var o2 = new Class;

  • 0
Posted

kā tv šķit , ko tieši tu te izveido ?!

var Class = function() {
}

Tā nav klase. Tas ir objekts un new operātors nedara to ko tu iedomājies iekš JS.

 

 

Bet drošvien Grey_Wolf un rATRIJS prot JS daudz labāk kā tas vecais muļķis - Deivids Krokfords (David Crockford)

 

Most languages use classes – I call them ‘classical languages’ – JavaScript does not. JavaScript is class free. It uses prototypes. For people who are classically trained who look at the language, they go: well, this is deficient. You don’t have classes, how can you get anything done?

http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-2

  • 0
Posted (edited)

Tā nav klase. Tas ir objekts un new operātors nedara to ko tu iedomājies iekš JS.

Bet drošvien Grey_Wolf un............

Tieshi to Es uzsveru.

Starp citu Shobriid JS jau IR klases...

Laiki mainas, tikumi nee...

P.S. neaizmirsti, ka daudziem klase asoceejas ar objektu -> slikti, bet taa nu tas ir :(

---

edit: lasiet

Edited by Grey_Wolf

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...