8. Exercícios //1 var a =3; var b = a; console.log(a); console.log(b); a =9; console.log(a); console.log(b);
9. Exercícios //2 functionsetName(obj, name){ obj.name= name; } var data = { name : 'Fulano' }; var copy = data; setName(copy, 'Ciclano'); console.log(copy.name); console.log(data.name);
10. Exerícios //3 functionsetVariables(){ var a =1; b =3; c =4; } console.log(window.a); console.log(window.b); console.log(window.c); setVariables(); console.log(window.a); console.log(window.b); console.log(window.c);
26. Argumentos functionsoma() { var i =0, len =arguments.length, resultado =0; for(; i < len ; i++){ resultado +=arguments[i]; } return resultado; } soma(2); //2 soma(2, 8); //10 soma(1, 2, 4); //7
27. Invocando varconfig= { mensagem: 'Olá de ' }; vardizNome=function(nome){ alert(this.mensagem+ nome); } dizNome('Fulano'); //undefinedFulano dizNome.call(config, 'Fulano'); //Olá de Fulano dizNome.apply(config, ['Fulano']); //Olá de Fulano
28. .call vs .apply varfoo=function(a, b, c) { return a + b + c; } //4 parâmetros, scope + n diversos foo.call(this, 1, 2, 3); //2 parametros, scope + array de diversos foo.apply(this, [1, 2, 3]);
34. Prototype functionPessoa(nome){ this.nome=nome; } Pessoa.prototype= { dizerOla: function(){ alert('Olá de '+this.nome); } }; var fulano =newPessoa("Fulano"); fulano.dizerOla(); Prototype podeserconsiderado o corpo da classe. Aondesãoassociadosmétodos e atributos.
35. Prototype functionPessoa(nome){ this.nome=nome; } var fulano =newPessoa("Fulano"); alert(fulano.dizerOla); //undefined Pessoa.prototype.dizerOla=function(){ alert('Olá de '+this.nome); }; alert(fulano.dizerOla); //function fulano.dizerOla(); //Olá de Fulano Alterar o protótipo de umaclassetêmefeitotambémeminstânciaspreviamentecriadas.
36. Herança //retorna um objeto com todos métodos de pessoa newPessoa(); //cria nova classe pirada varPirata=function(){}; //herda os métodos de pessoa Pirata.prototype=newPessoa(); //teste var jack =newPirata("Jack"); jack.dizerOla(); //Olá de Jack