28 Ocak 2018 Pazar

javascript fonksiyon defination varyasyonları

javascriptte fonksiyonlar otomatik olarak window nesnesine bağlanır. window nesnesinde ki fonksiyonlar global dır ve heryerden erişilebilir.

Heryerden erişilmesine gerek olmayan fonksiyonlar ise object içinede tanımlanır ve sadece o object ismi ile invoke edilebilir.  Bu yöntem programcılar tarafından tercih edilen bir yöntemdir.

Bir fonksiyonda return olması zorunlu değildir. Return olmayan fonksiyonlar geriye undefined döndürür.


Bir fonksiyonda belli bir koşula göre erken çıkmak için de return ifadesi kullanılır.
.


1. function bildirimi (defination)
function functionName(parameters) {
// body goes here
}

Bu şekilde tanımlamanın avantajı invoke edildiği yerin üstünde de olsa çalışır altında da olsa çalışır.
Örnek

var circleArea = computeArea(3);
console.log("Area of circle with radius 3: " + circleArea);
circleArea = computeArea(5);
console.log("Area of circle with radius 5: " + circleArea);
circleArea = computeArea(7);
console.log("Area of circle with radius 7: " + circleArea);

function computeArea(radius) {
var area = radius * radius * Math.PI;
return area;
}
2. function ifadeleri (expressions)
 
function computeArea(radius) {
var area = radius * radius * Math.PI;
return area;
}
var computeArea = function(radius) {
var area = radius * radius * Math.PI;
return area;
};

Bu şekilde tanımlamada fonksiyon bir değişken gibi tanımlanıyor. Bir değer barındıran değişken bu sefer bir fonksiyon barındırıyor. 
Bu şekilde tanımlamada fonksyion bir değişkene atandığı için kesinlikle invoke edilmeden önce tanımlanmalıdır. Aksi halde hata oluşur.
Örnek
var computeArea = function(radius) {
var area = radius * radius * Math.PI;
return area;
};
var circleArea = computeArea(3);
console.log("Area of circle with radius 3: " + circleArea);
circleArea = computeArea(5);
console.log("Area of circle with radius 5: " + circleArea);
circleArea = computeArea(7);
console.log("Area of circle with radius 7: " + circleArea);
var computeArea = function(radius) {
var area = radius * radius * Math.PI;
return area;
};

3. İsimsiz Functions (Anonymous)

Bir fonksiyon sadece 1 kez kullanılacak başka yerde kullanılmayacaksa isimsiz fonksiyon olarak tanımlanır.

Bu şekilde tanımlamanın avantajı gereksiz foksiyon tanımlamalarını önlemektir. Dolayısıyla site kod okunurluğunu artırır ve tarayıcı performansını olumlu yönde etkiler.
Örnek
var myArray = [1, 2, 3];
var newArray = myArray.map(function(x) { return x+1; });
console.log(newArray);
function map(a, f) {
var newArray = [];
for (var i = 0; i < a.length; i++) {
newArray.push(f(a[i]));
}
return newArray;
}
function addOne(x) {
return x+1;
}
var newArray2 = map(myArray, addOne);//bu kısımda fonksiyona parametre olarak fonksiyon gönderilmektedir
var newArray2 = map(myArray, function(x) { return x+1; });
console.log(newArray2);


4.fonksiyon dan fonksiyon döndürme (Returning a Function from a Function

)
Fonksiyona parametre olarak fonksiyon gönderilebileceği gibi (yukarıdaki örneği incele), fonksiyon geri dönüş değeri olarak bir fonksiyon döndürebilir. 
Aşağıdaki örneği dikkatlice inceleyin.
Örnek
function makeConverterFunction(multiplier, term) {
      return function(input) {
          var convertedValue = input * multiplier;
          convertedValue = convertedValue.toFixed(2);
          return convertedValue + " " + term;
     };
}
var 
kilometersToMiles = makeConverterFunction(0.6214, "miles");
console.log("10 km is " + kilometersToMiles(10));
var milesToKilometers = makeConverterFunction(1.62, "km");
console.log("10 miles is " + milesToKilometers(10));

5. Functions as Callbacks
Javascriptin kalbi olaylardır (events). Javascripte olayları işlemek için fonksiyonlar kullanılır.
Genellikle olay işleyicilerine callback denir çünkü olay olduğunda, o olayı işlemek için bir fonksiyonu "geri çağırırız". Geri bildirimler her zaman olaylarla ilgili değildir. Ama çoğunluk itibariyle olaylarla ilgilidir.


Callbackler genellikle asenkron işlemlerde kullanılır. aşağıdaki örnekte konumunuz tespit edilmeye çalışılacaktır. Konumun ne zaman tespit edileceği belli değildir. Tespit edildiği anda getLocation fonksiyonu çalıştırılacaktır

(function() {//bu fonksiyon iife fonksiyondur, otomatik olarak çalışır
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getLocation);
}
else {
console.log("Sorry, no Geolocation support!");
return;
}
})();

function getLocation(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;

console.log( "You are at lat: " + latitude + ", long: " + longitude);
}

Hiç yorum yok:

Yorum Gönder

Poliüretan Makinesi: Isı ve Yalıtımın Güçlü Buluşması

Poliüretan makinası, poliol ve izosiyanat isimli iki kimyasalı yüksek basınç ve ısı altında birleştirerek köpük elde eden bir sistemdir. Bu ...