Created
January 12, 2018 18:46
-
-
Save fmalk/48ef59080ac3fb11dff75335c5ff0c04 to your computer and use it in GitHub Desktop.
Arrow Functions - Acessando propriedades de classes Arrow Functions - Acessando propriedades de classes // source http://jsbin.com/niwagij
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta name="description" content="Arrow Functions - Acessando propriedades de classes"> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width"> | |
<title>Arrow Functions - Acessando propriedades de classes</title> | |
</head> | |
<body> | |
<script id="jsbin-javascript"> | |
// Um exemplo de classe problemática. | |
// Queremos continuar acessando propriedades e métodos "de fora", | |
// usando uma instância, mas os próprios métodos da classe tem | |
// dificuldade de acessar as próprias propriedades. | |
// Como resolver usando Arrow Functions () => {}, e porque funciona? | |
const ReqOperations = function() { | |
this.airportList = { golAirportList: ['CWD', 'GRU'] }; | |
this.addDestinations = function(destinationList) { | |
return destinationList.map(function(dest, index) { | |
// esta linha dá erro | |
return this.airportList.golAirportList[index]+' > '+dest; | |
}); | |
}; | |
}; | |
let x = new ReqOperations(); | |
// deve exibir ["CWD", "GRU"] | |
console.log(x.airportList.golAirportList); | |
// deve exibir ["CWD > AMD", "GRU > GIG"], mas dá erro | |
console.log(x.addDestinations(['AMD', 'GIG'])); | |
</script> | |
<script id="jsbin-source-javascript" type="text/javascript">// Um exemplo de classe problemática. | |
// Queremos continuar acessando propriedades e métodos "de fora", | |
// usando uma instância, mas os próprios métodos da classe tem | |
// dificuldade de acessar as próprias propriedades. | |
// Como resolver usando Arrow Functions () => {}, e porque funciona? | |
const ReqOperations = function() { | |
this.airportList = { golAirportList: ['CWD', 'GRU'] }; | |
this.addDestinations = function(destinationList) { | |
return destinationList.map(function(dest, index) { | |
// esta linha dá erro | |
return this.airportList.golAirportList[index]+' > '+dest; | |
}); | |
}; | |
}; | |
let x = new ReqOperations(); | |
// deve exibir ["CWD", "GRU"] | |
console.log(x.airportList.golAirportList); | |
// deve exibir ["CWD > AMD", "GRU > GIG"], mas dá erro | |
console.log(x.addDestinations(['AMD', 'GIG'])); </script></body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Um exemplo de classe problemática. | |
// Queremos continuar acessando propriedades e métodos "de fora", | |
// usando uma instância, mas os próprios métodos da classe tem | |
// dificuldade de acessar as próprias propriedades. | |
// Como resolver usando Arrow Functions () => {}, e porque funciona? | |
const ReqOperations = function() { | |
this.airportList = { golAirportList: ['CWD', 'GRU'] }; | |
this.addDestinations = function(destinationList) { | |
return destinationList.map(function(dest, index) { | |
// esta linha dá erro | |
return this.airportList.golAirportList[index]+' > '+dest; | |
}); | |
}; | |
}; | |
let x = new ReqOperations(); | |
// deve exibir ["CWD", "GRU"] | |
console.log(x.airportList.golAirportList); | |
// deve exibir ["CWD > AMD", "GRU > GIG"], mas dá erro | |
console.log(x.addDestinations(['AMD', 'GIG'])); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment