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.