Usando vários objetos Javascript

10/10/2012 Todas as referências a “Classes” para “Objetos” foram atualizadas. Eu estava me referindo aos objetos personalizados como classes. O que em Javascript não é o caso. Javascript não usa classes, como foi apontado. Meu erro! Obrigado pela informação, <a href=” http://coderwall.com/avenger7x”> avenger7x </a>

No meu <a href=” http://coderwall.com/p/le3i-g?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21bookmarks”> Javascript simples Exemplo de objeto </a>, eu descrevi como criar um objeto “Pessoa” simples e o implementei com uma função de calculadora de idade e uma função simples “Diga olá”.

Com este exemplo, quero mostrar como implementar um objeto adicional de dentro desse objeto Person simples. Para isso, o novo objeto será denominado “Linguagem”. Portanto, agora temos uma pessoa e precisamos especificar que idioma ela está falando.

O objeto Language:

function Language(value){

this.lang = value;
}

Language.prototype.sayGreeting = function(){

switch (this.lang){

case "en":

return "Hello my name is: ";
break;

case "es":

return "Hola mi nombre es: ";
break;
}
}

Este objeto cria o objeto Language que iremos inicializar e então usar a função sayGreeting. A função sayGreeting utiliza os códigos de idioma ISO 639-1.

Agora que nosso objeto Language foi criado, vamos usá-lo! Só podemos usá-lo se nos lembrarmos de importá-lo para o nosso arquivo HTML.

Objeto Person atualizado

function Person(p_name, p_year){

this.name = p_name;
this.age = this.getAge(p_year);

try {

this.language = new Language("en");
} catch ( error ) {

alert
("No Language script imported");
}
}

Person.prototype.sayHello = function(){

try {

document
.write(this.language.sayGreeting() + this.name);
} catch (error){

document
.write("I haven't learned any languages yet");
}
}

Agora em nosso documento HTML, vamos dar uma olhada em como adicionamos uma pessoa

<script type="text/javascript" src="person.js"></script>
<script type="text/javascript" src="language.js"></script>
<script type="text/javascript">

var personObject = new Person("Patrick", 1986);
personObject
.sayHello();
</script>

Portanto, você deverá ver “Hello my name is: Patrick.”

Isso é ótimo se você deseja declarar o idioma na criação, mas e se você precisar modificar o idioma após o objeto ser criado. Então, alguém aprende um novo idioma, precisa definir seu idioma para um novo idioma.

A função a seguir é adicionada a Person.js

Person.prototype.setLanguage = function(value){

try {

this.language = new Language(value);
} catch ( error ) {

// there was a problem setting the language
}
}

Agora, podemos definir um novo idioma para o objeto Person para algo diferente do inglês. Eu atualizei a página HTML com a função setLanguage.

Página HTML

<script type="text/javascript">

var personObject = new Person("Patrick", 1986);
personObject
.sayHello();
var personObjectNew = new Person("Robert", 1983);
personObjectNew
.setLanguage("es");
personObjectNew
.sayHello();
</script>

Saída
Olá, meu nome é: Patrick
Hola mi nombre es: Robert

É isso aí! Estamos usando nosso novo objeto Language de dentro de nosso objeto Person. Agora que sabemos fazer isso, podemos fazer qualquer coisa! Este é apenas um objeto de amostra e você certamente pode pegá-lo e executá-lo.