Olá. Eu criei um objeto JavaScript, e dentro dele gostaria de executar uma função. Não vejo nenhum erro no meu código, mas o navegador está me dizendo que minha função não é uma função.
Objeto:
function Properties(){
var language;
var originalKeys;
this.getLanguage = function(){
return language;
}
this.setLanguage = function(language){
this.language = language;
}
this.getOriginalKeys = function(){
return originalKeys;
}
this.setOriginalKeys = function(originalKeys){
this.originalKeys = originalKeys;
}
function translateTo(language){
}
function printKeys(){
alert("chamou sadisgraça");
for (var key in originalKeys) {
console.log(originalKeys[key]);
}
}
}
Chamando a função…
<script type="text/javascript">
function handleFileSelect(evt) {
var files = evt.target.files;
var output = [];
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
reader.readAsText(f);
var properties = new Properties();
var originalKeys = {};
reader.onload = function(e) {
var lines = reader.result.split("\n");
for(i = 0; i< lines.length; ++i){
var key = lines[i].substring(0,lines[i].indexOf("="));
var value = lines[i].substring(lines[i].indexOf("=")+1, lines[i].length);
originalKeys[key] = value;
}
};
properties.setOriginalKeys(originalKeys);
properties.printKeys(); ///AQUI
}
}
window.onload = function(){
document.getElementById('fileInput').addEventListener('change', handleFileSelect, false);
}
function drop(e){
e.stopPropagation();
e.preventDefault();
var reader = new FileReader();
reader.readAsText(e.dataTransfer.files[0]);
var properties = new Properties();
var originalKeys = {};
reader.onload = function(e) {
var lines = reader.result.split("\n");
for(i = 0; i< lines.length; ++i){
var key = lines[i].substring(0,lines[i].indexOf("="));
var value = lines[i].substring(lines[i].indexOf("=")+1, lines[i].length);
originalKeys[key] = value;
}
};
properties.setOriginalKeys(originalKeys);
properties.printKeys(); ///AQUI
}
</script>
Erro: