Bu yanlış varsa lütfen hafızamı affet ... Javascript benim tercih ettiğim uygulama dili değil.
Birinin bir arg işlevinin başka bir işlev çağrısını kaydırmasını istememesinin birkaç nedeni vardır. Basit çağrı, window.alert("Hello");
sadece bunun yerine doğrudan arayarak hayal edebileceğiniz bir şey iken sayHello()
.
Peki ya daha fazlası varsa? Aramak istediğiniz sayHello()
ve window.alert("Hello");
yerine yazmak istediğiniz bir düzine yer var . Şimdi bir şey yapmasını istiyorsun window.alert("Hello, it is now " + new Date())
. Tüm bu çağrıları tamamladıysanız sayHello()
, tek bir yeri değiştirirseniz. Yapmazsan bir düzine yerde değiştirirsin. Bu dokunur Kendini Tekrar Etme . Bunu yaparsınız, çünkü gelecekte bir düzine defa yapmak zorunda değilsiniz.
Geçmişte i18n / l10n kütüphanesiyle çalışmıştım , metnin istemci tarafında yerelleştirilmesi için işlevler kullandım. sayHello()
Fonksiyonu düşünün . hola
Kullanıcı bir İspanyolca dilinde yerelleştirildiğinde yazdırılmasını sağlayabilirsiniz . Bu şuna benzeyebilir:
function sayHello() {
var language = window.navigator.userLanguage || window.navigator.language;
if(language === 'es') { window.alert('Hola'); }
else { window.alert("Hello"); }
}
Yine de, kütüphane bu şekilde çalışmadı. Bunun yerine, benzeyen bir dosya kümesi vardı:
# English file
greeting = hello
# Spanish file
greeting = hola
Ardından kütüphane tarayıcı dili ayarını tespit eder ve ardından uygun lokalizasyon dosyasına dayanarak herhangi bir tartışmasız fonksiyon çağrısı için dönüş değeri olarak uygun yerelleştirmeye sahip dinamik fonksiyonlar oluşturur .
Bunun iyi ya da kötü olup olmadığını söylemek için yeterli bir Javascript kodlayıcıya yetmiyor ... sadece bunun mümkün olduğunu ve olası bir yaklaşım olarak görülebileceğini.
Çağrının, bir işlevi başka bir işleve kendi işlevi ile sarması genellikle oldukça yararlıdır ve uygulamanın modülerleşmesine yardımcı olur ve ayrıca kodun okunması daha kolay olabilir.
Bütün bunlar bir yana, bir dersten çalışıyorsun. Başlangıçta mümkün olduğunca basit şeyler tanıtmak için gereklidir. Varargs style işlev çağrısının baştan başlatılması, genel olarak kodlamaya aşina olmayan bir kişi için kafa karıştırıcı bir kodla sonuçlanabilir. Bir argümandan, argümana, varargs stiline - önceki örneklerde ve anlayışta her binada gitmek çok daha kolaydır.