Jump to content
php.lv forumi
  • 0

Daži jautājumi par JavaScript'u


daGrevis

Question

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.

Link to comment
Share on other sites

Recommended Posts

  • 0

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.

Link to comment
Share on other sites

  • 0

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
Link to comment
Share on other sites

  • 0


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;

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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
Link to comment
Share on other sites

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...