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.