♫ in the jungle, the mighty jungle, the lion sleeps tonight ♫
Olá a todos, como vão? Alguns internautas do Condado Braveheart estavam em dúvidas sobre esses tipos de métodos, por isso, nesse tópico, vou estar explicando melhor a respeito do método Prototype e a chave this.
Você, usuário do RPG Maker MV (ou uma pessoa normal), já deve ter visto estas expressões em todo lugar nas profundezas dos scripts do seu projeto. Esse tópico poderá abrir teus olhos para entender o uso desse método naqueles arquivos.
O método Prototype é utilizado para ligar uma função existente à um novo objeto, isto é, criar um objeto para aquela função.
Veja um exemplo:
Código:
function frutas() {
this.banana = 10;
this.laranja = 4;
}
frutas.prototype.limao = 2;
Acima, vemos uma função chamada "frutas", com seus conteúdos (objetos). E em seguida, utilizamos o método Prototype para criar um novo conteúdo para aquela função chamada "limao", a qual tem um valor de número 2.
Agora, veja a chave this ao lado de cada objeto. Cada this está indicando a função como a "dona" do objeto. Ela é assim para que você não fique escrevendo o nome da função toda hora para cada objeto que você adicionar e usar para se referir algum objeto ligado a Prototype.
Exemplo:
Errado
Código:
function frutas() {
frutas.banana = 10;
frutas.laranja = 4;
}
Certo
Código:
function frutas() {
this.banana = 10;
this.laranja = 4;
}
Voltando ao Prototype...
Além de adicionar apenas um valor. Ele pode definir vários comandos e armazená-los consigo. Um exemplo é desse código de criação de janela no RPG Maker MV:
Código:
function Scene_Shop() {
this.initialize.apply(this, arguments);
}
/* [...] */
Scene_Shop.prototype.initialize = function() {
Scene_MenuBase.prototype.initialize.call(this);
};
Na função Scene_Shop(), vemos que há um objeto a ser chamado, o "Initialize" que, em algumas linhas abaixo, ela é definida.
O Initialize é também definida como uma outra function() em que possui o código que chama outro objeto de uma outra função através do call().
Então, cada função pode ter objetos personalizados que quiser, basta inserir o nome da função, o método Prototype e o nome para o objeto. E quando quiser se referir algo ao próprio objeto da função, use this, essa regra também aplica aos objetos que tem a ligação Prototype.
That's all, folks! Qualquer dúvida vocês podem responder o tópico. Fiquem ligados para os próximos tutoriais de Javascript que estarei fazendo.