Skip to content

Instantly share code, notes, and snippets.

View dutradotdev's full-sized avatar
🎯
Focusing

lucas dutradotdev

🎯
Focusing
View GitHub Profile
@dutradotdev
dutradotdev / .js
Last active March 11, 2019 01:46
Exemplo de namespace
var cokePkt = cokePkt || {};
cokePkt.greeting = {
hi: function hi() {
console.log('hi');
},
hello: function hello() {
console.log('hello');
}
};
@dutradotdev
dutradotdev / .js
Last active March 11, 2019 02:17
Namespace usando IIFE
(function(namespace){
'use strict';
function getName() {
return 'Lucas';
}
namespace.greeting = {
hi: function hi() {
console.log('hi ' + getName());
},
@dutradotdev
dutradotdev / .js
Last active March 17, 2019 23:20
UMD exemplo
/*
O UMD verifica se você está usando AMD ou CommonJS.
Caso você não esteja usando nenhum desses dois, ele
adiciona seu módulo no objeto global.
*/
(function (global, factory) {
// verifica se é AMD
if (typeof define === "function" && define.amd) {
define(["exports"], factory);
// verifica se é CommonJS
@dutradotdev
dutradotdev / .js
Created March 17, 2019 23:49
Revealing Module Pattern
(function(global){
const idade = 21;
const cpf = 13412312321;
function meuNomeQueSeraExposto() {
return 'Lucas';
}
function meuNomeQueNaoSeraExposto() {
return 'Lucas Muniz Dutra';
}
@dutradotdev
dutradotdev / .js
Last active March 18, 2019 00:45
AMD
define('meuModulo', ['lodash'], function(_) {
// código do módulo
return {
...
};
});
// os argumentos do módulo devem estar na mesma ordem do array de dependências
define('meuModulo', ['lodash', 'facebook'], function(_, fb) {
// código do módulo
@dutradotdev
dutradotdev / .js
Last active March 18, 2019 01:07
CommonJS
// carregando o lodash na variável _
const _ = require('lodash');
function meuModulo() {
}
// você pode retornar uma função, objeto ou uma variável.
// agora o meuModulo pode ser importado usando o require.
module.exports = meuModulo;
@dutradotdev
dutradotdev / .js
Created March 18, 2019 11:05
Prototype chain
/*
navegaremos de construtor a construtor até obter um erro
no final na prototype chain
*/
var set = new Set();
console.log(set);
// []
console.log(set.constructor);
// ƒ Set() { [native code] }
console.log(set.__proto__.constructor);
@dutradotdev
dutradotdev / .js
Last active March 18, 2019 22:19
Herança
function Veiculo(nome, valor, cor) {
this.nome = nome;
this.valor = valor;
this.cor = 'preto';
};
Veiculo.prototype.acelerar = function() {
console.log('aceleraaaaaa');
}
@dutradotdev
dutradotdev / .js
Last active March 18, 2019 23:00
Herança com métodos e constructor correto
// agora a classe Ferrari extends Veiculo
Ferrari.prototype = Object.create(Veiculo.prototype);
// porém agora o constructor de Ferrari.prototype é igual
// ao de Veiculo.prototype... Precisamos resolver isso.
Ferrari.prototype.constructor = Ferrari;
let ff = new Ferrari();
ff.acelerar() // works!!
Ferrari.prototype.constructor // Ferrari
@dutradotdev
dutradotdev / .js
Last active March 18, 2019 23:52
Herança + ES6
class Veiculo {
constructor(nome, valor, cor) {
this._nome = nome;
this._valor = valor;
this._cor = cor;
}
get cor() {
return this._cor;
}