3
In javascript we can have the constructor functions that are of type Function, with them we can instantiate objects as in the following example:
function Pessoa(nome="Usuário Anonimo", idade = 00, cor) {
//com o this podemos criar atributos e funções para serem acessados de forma pública
this.falar = function() {
console.log("Olá eu sou " + nome + " tenho " + idade + " Anos")
}
// podemos fazer os retornos de atributos da função por meio de métodos públicos ou até mesmo atributos públicos como this.nome = nome
this.getCor = function(){
return this.cor
}
this.setCor = function(cor){
this.cor = cor
}
}
const anonimo = new Pessoa
anonimo.falar()
anonimo.setCor("pardo")
console.log(anonimo.getCor())
// outra execução
const pedro = new Pessoa("Pedro ", 35, "Rosa")
pedro.falar()
// nesse caso a saída é undefined pois teríamos que definir this.cor = cor
// nesse caso iria referenciar a assinatura da function
console.log(pedro.getCor())
In other languages like Java we can define the visibility and permissibility of attributes through reserved words like: private, protected or public and depending on whether it is one or the other we can work on direct returns instancia.atributo
or class.getAtribute
how we can assign such contexts within a constructor function?
Reference: object oriented mozila