Merhaba,
pek soru soran biri olmadım, sorduğum içinde rahatsız hissediyorum kendimi. ancak sinirden ağlayacak duruma geldim. mümkün olduğunca front end kısmına bulaşmam. şuan gerekli olduğu için bir miktar kod yazmam gerekti. neyse, sorunum sınıf içerisinde method çağıramamak. önce php'den alışık olduğum söz dizimi ile bir sınıf oluşturdum. daha sonra araştırdığım kadarıyla, o tarz bir kullanımda sınıf içerisinde methodları function olarak çağıramıyormuşuz, yüzlerce stackoverflow sayfası talan ettim, hep oluşturma ve dışarıdan çağırma ile alakalı basit örnekler veriliyordu. neyse es6 standartlarını uyguladım sınıfıma.
var Dizin = new function() {
this.design = $('body').find('directory-list') ? 0 : 1;
this.bilgiler = ['ad', 'atime', 'mtime', 'ctime', 'tip', 'boyut', 'izin', 'dizin'];
this.conf = [
{
attr: ["span", "file"],
event: ["click", "next"],
id: ".FileInfos",
tip: ".FileInfo"
},
{
attr: ["folder", "file"],
event: ["hover", "find"],
id: ".item-hints",
tip: ".file-content"
}
];
this.aciklama = function(value) {
return value
};
this.tips = function(){
return 'tips';
};
this.returnTree = function() {
console.log('tree ', this.tips(), this.aciklama('merhaba dünya'), this.conf[0]['event'][0]);
};
}
Dizin.returnTree();
bu şekildeyken çalışıyor sorun yok. ancak methodların içerisini gerçek kodlar ile doldurduğumda not a function hatası almaya devam ediyorum.
var Dizin = new function() {
this.design = $('body').find('directory-list') ? 0 : 1;
this.bilgiler = ['ad', 'atime', 'mtime', 'ctime', 'tip', 'boyut', 'izin', 'dizin'];
this.conf = [
{
attr: ["span", "file"],
event: ["click", "next"],
id: ".FileInfos",
tip: ".FileInfo"
},
{
attr: ["folder", "file"],
event: ["hover", "find"],
id: ".item-hints",
tip: ".file-content"
}
];
this.aciklama = function(hanimiselement){
let aciklamalar = [];
for (let bilgi of this.bilgiler)
aciklamalar[bilgi] = hanimiselement.attr('data-'+bilgi);
return 'name: ${aciklamalar["ad"]}<br>
dir: ${aciklamalar["dizin"]}<br>
atime: ${aciklamalar["atime"]}<br>
mtime: ${aciklamalar["mtime"]}<br>
ctime: ${aciklamalar["ctime"]}<br>
filetype: ${aciklamalar["tip"]}<br>
filesize: ${aciklamalar["boyut"]}<br>
chmod: ${aciklamalar["izin"]}';
}
this.tips = function(){
console.log(
this.conf[this.design]['event'][1]
);
return $(this).attr('data-id') == 1 ? 1 : 0;
}
this.returnTree = function(){
$(this.conf[this.design]['id']).on(this.conf[this.design]['event'][0],function(){
//let tree = this.design == 0 ? $(this).parent('sup').prev(this.conf[0]['attr'][this.tips()]) : $(this) ;
//$(this).next ('.FileInfo').html(this.aciklama(tree));
console.log(this.tips());
});
}
}
yaklaşımım doğru mu emin değilim, ancak function olarak yazdığım tasarım özelliklerini data-* değerlerden dinamik hale getirecek daha kısa ve kaliteli bir yapı kurmaya çalışıyorum.

sinirden ağlamanın eşine geldim. tecrübesiz acemi biri olsam amenna ama, böyle olunca morali bozuluyor insanın. consol artık hata sarına tıklandığında kodları da göstermiyor boş index açıyor. kara komik bi durum yaşıyorum.