Arkadaşlar merhaba.
new constructor(); ve prototype içinde uygun olup olmaması ile alakalı bir sorum olacaktı.
ne istediğimi anlatayım:
var fonksiyon = function(data1, data2) {
var d1 = data1, d2 = data2;
this.carp = function() {
return d1 * d2;
}
this.topla= function() {
return d1 + d2;
}
}yukarıdaki fonksiyonu tamamen uydurdum. Şimdi bu fonksiyon içinde bir hesaplama yapabilmel için fonksiyonu aşağıdaki gibi çağırmak gerekiyor.
new fonksiyon(5,3).carp();
// Log = 15
Prototype lerini kullandığım için (this), "new" yazmadan çağırdığımızda,
fonksiyon(5,3).carp();
// Log = carp is not defined // veya not function diyecektir
İşte olay bu noktada başlıyor. Ben dışarıda her defasında "
new" i kullanmak istemiyorum. Onun için onu fonksiyonun içine alsam, diğerleri için bir alt fonksiyon oluştursam?
var fonksiyon = function(data1, data2) {
var d1 = data1, d2 = data2;
this.carp = function() {
new CARP(d1,d2);
}
var CARP = function(d1,d2) {
return d1 * d2;
};
this.topla= function() {
new TOPLA(d1,d2);
}
var TOPLA = function(d1,d2) {
return d1 + d2;
};
}Bu şekilde yapsam?
fonksiyon(5,3).carp();
// Log = 15
New kullanmadan da bana istediğim sonucu veriyor. Çünkü içeriye taşıdım.
Fakat bu yazım anatomisinin bir sorunu var mı bilemedim. Ne bileyim IE de çalışır mı? veya ne bileyim hız ı olumsuz etkiler mi? Yani kullanımı sakıncalı mı?
"çünkü plugin yazacağım, onun içinde kullanacağım. factory() vs."
Aksi taktirde düzgün calışıyor.
Yorumlarınzı ve varsa alternatif çözümlerinizi bekliyorum.