Archive for novembre 2012

JavaScript Objects

I’ve been busy studying JavaScript at Codecademy. It’s a great way to learn, with interactive lessons and if you happen to get stuck, there’s an active forum with a lot of helpful people to get you out of your bind.

The thing is, there are a lot of contributors for the large collection of lessons, and it can get a bit confusing, at least I think so. That’s why I decided to write this short post on JavaScript objects, just to clear things up a bit in my head.

Thus far I’ve learned three methods to create an Object or an Object constructor to be more precise.

They are:

Object Literal Notation

This is like declaring a variable but you create an Object by using curly brackets. An Object remarkably resembles an Array, the difference being that an Object can contain Functions, they are called Methods!

an Object literal declaration looks like this:

var myObjectName = {};

An Object with literal notation contains properties inside the curly brackets:

var me = {
 age:46,
 country:"Canada"
};

Object Constructor Notation

The other way to create an Object is using the Constructor method. There are two ways to go about this:

Using the new Object keyword
var me = new Object();
 me.age=46;
 me.country="Canada";
 or using the Function keyword

A method is like a function for objects. Using the Function keyword, you can setup a « template » to create many Objects that will be based on the original declaration as you want. This avoids the monotony of having to do a lot of typing. This is still Object constructor notation.

Update: it turns out this is the method used for creating a class in JavaScript and is the first step in my learning the concept of OOP (Object Orientated Programming). Woot!

function Person(job, married) {
 this.job = job;
 this.married = married;
}

Then to create a new Object based on the above syntax you sort of combine variable and array declarations:

var bob = new Person("carpenter", "single");

So an Object can, like an Array, contain strings, numbers and Boolean values, but unlike Arrays an Object can also contain a Method. You can declare a Method by using the keyword Function inside the Object constructor notation.

function me(age,country){
 this.age=age;
 this.country=country;
 this.describeMyself = function() {
 console.log("I am a " + this.age + " years old and I live in "+this.country);
 };
}
var me2 = new me(22, "USA");
me2.describeMyself();

Notice the keyword this is acting as a variable to pass you information on newly created Objects no matter what they’re called? By using this in the dot notation form you’re also declaring a public variable that is accessible from outside the object. If you wanted to make the properties private you would use the keyword var. This would make the property inaccessible outside the object. There’s a work around to this, you create a public method within your object that returns  the values of private values.

Let me elaborate:

function Person(first,last,age) {
 this.firstname = first;
 this.lastname = last;
 this.age = age;
 var bankBalance = 7500;
 this.getBalance = function() {
 return bankBalance;
 };
}

If you call Person.bankBallance; directly, you’ll get undefined as a result. To get around this, you define a public method which calls your private variable and returns its’ value publicly. Why? I learn about that later I guess and write some more on the subject at a later date.

Accessing the information

Accessing information inside an object is simple, you can either use the square brackets like you would access information inside an array, or like above, you can use dot notation.

so to find out how old me2 is you would just:

var meAge = me2.age;
or
me2["country"]; //returns "USA"
console.log("I'm " +meAge); //returns 22

Some interesting ways to access valuable information concerning the content of objects are:
hasOwnProperty which returns a Boolean value. You use it like this:

myObj.hasOwnProperty('country');

Which in our case would return true!

Now to learn about prototypes and inheritance…

className.prototype.newMethod = function() {
 statements;
};

Syntax of extending the prototype

I hope you find this useful, I certainly did, I figured out a few things while writing this. Comments are always welcome, and if you see an error in my post, please let me know so I can fix it!

Source: classes at codecademy.com

Multilingue Mac OS X !

Vous êtes multilingue et vous voulez travailler sur votre Mac avec plusieurs langues? C’est possible et facile! Ça peut vous sembler évident, mais on m’a demandé comment faire. Je vais aussi vous montrer les fonctionnalités du clavier.

Apple fournit une bonne quantité de langues déjà installées par défaut. Si tout de même, vous ne trouvez pas ce que vous cherchez, d’autres langues sont disponibles en format mise-à-jour sur le site de soutien Apple. Lors de l’installation vous avez choisi une langue et vous croyiez sans doute que ça finissait là, mais non! Il suffit d’ouvrir le panneau de configuration du système et d’utiliser le panneau de contrôle « international ».

Pour commencer, démarrez les préférences système dans le « Dock » du OS X:

Dock Mac OS X

Cela devrait vous afficher la fenêtre des panneaux des préférences système:

Panneau de configuration "préférences système" du système Mac OS X

Sous la catégorie Personnel sélectionnez International. International contient trois languettes, soit Langues, Formats ou Menu Saisie.

Langues dans InternationalFormats dans InternationalSaisie dans International

Pour effectuer le changement de langue de l’interface du système, nous utilisons la première languette soit Langues.

Pour changer la langue de l’interface, il ne suffit que de glisser la langue que vous désirez utiliser vers le haut, pour qu’elle se trouve en premier dans la liste.

Glisser la langue vers le haut

Le système vous affichera une alerte disant que les changements seront appliqués lors de l’ouverture de la prochaine session.

Donc, pour mettre en vigueur la langue, il nous faut fermer la session et en ouvrir une nouvelle. Cette procédure doit être effectuée à chaque fois que vous désirez changer la langue du système. Vous pouvez forcer à quitter le finder, mais il reste des résidus de la langue précédente. Donc, il vaut mieux fermer votre session. Prenez note que cette procédure n’aura effet que sur le système d’exploitation et que si vos logiciels sont installés dans une autre langue, elle sera en vigueur dans l’environnement du logiciel. Donc par exemple, Photoshop anglais restera toujours en anglais. Quark passeport, par contre, possède la capacité de changer son interface à plusieurs langues. Si vous cherchez vous pouvez trouver des traductions localisées pour la majorité des logiciels.

Lorsque vous démarrez votre prochaine session vous verrez que la nouvelle langue est en vigueur.

L'interface du système dans une autre langue

http://support.apple.com/kb/DL1123

%d blogueurs aiment cette page :