JavaScript İşlev Çağırma
JavaScript'in içindeki kod function
, "bir şey" onu çağırdığında yürütülür.
JavaScript İşlevini Çağırma
Bir fonksiyonun içindeki kod, fonksiyon tanımlandığında yürütülmez .
Bir fonksiyonun içindeki kod, fonksiyon çağrıldığında yürütülür .
" Bir işlevi çağırmak " yerine " bir işlevi çağırmak " terimini kullanmak yaygındır .
"Bir işlevi çağırın", "bir işlevi başlatın" veya "bir işlevi yürütün" demek de yaygındır.
Bu eğitimde invoke kullanacağız , çünkü bir JavaScript işlevi çağrılmadan çağrılabilir.
Bir Fonksiyonu Fonksiyon Olarak Çağırmak
Örnek
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); //
Will return 20
Yukarıdaki fonksiyon herhangi bir nesneye ait değildir. Ancak JavaScript'te her zaman varsayılan bir global nesne vardır.
HTML'de varsayılan global nesne HTML sayfasının kendisidir, bu nedenle yukarıdaki işlev HTML sayfasına "aittir".
Bir tarayıcıda sayfa nesnesi tarayıcı penceresidir. Yukarıdaki işlev otomatik olarak bir pencere işlevi olur.
myFunction() ve window.myFunction() aynı işlevdir:
Örnek
function myFunction(a, b) {
return a * b;
}
window.myFunction(10, 2); // Will also return 20
Bu, bir JavaScript işlevini çağırmanın yaygın bir yoludur, ancak çok iyi bir uygulama değildir.
Genel değişkenler, yöntemler veya işlevler, genel nesnede kolayca ad çakışmaları ve hatalar oluşturabilir.
Bu Anahtar Kelime
JavaScript'te denilen şey this
, geçerli kodun "sahibi" olan nesnedir.
Bir işlevde kullanıldığında değeri, this
işlevin "sahibi" olan nesnedir.
this
Bunun bir değişken olmadığını unutmayın . Bu bir anahtar kelimedir. değerini değiştiremezsiniz this
.
İpucu: JS this Keyword'dekithis
anahtar kelime hakkında daha fazla bilgi edinin .
Küresel Nesne
Sahip nesnesi olmadan bir işlev çağrıldığında, değeri this
global nesne olur.
Bir web tarayıcısında global nesne tarayıcı penceresidir.
Bu örnek, pencere nesnesini şu değer olarak döndürür this
:
Örnek
let x = myFunction();
// x will be the window object
function myFunction() {
return this;
}
Bir fonksiyonu global fonksiyon olarak çağırmak, bunun değerinin global nesne olmasına neden olur .
Pencere nesnesini bir değişken olarak kullanmak, programınızı kolayca çökertebilir.
Bir Fonksiyonu Yöntem Olarak Çağırmak
JavaScript'te işlevleri nesne yöntemleri olarak tanımlayabilirsiniz.
Aşağıdaki örnek , iki özelliğe ( firstName ve lastName ) ve bir metoda ( fullName ) sahip bir nesne ( myObject ) oluşturur :
Örnek
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // Will return "John Doe"
fullName yöntemi bir işlevdir . İşlev nesneye aittir. myObject işlevin sahibidir.
adlı şey this
, JavaScript kodunun "sahibi" olan nesnedir. Bu durumda this
değeri myObject'dir .
Dene! Şunun değerini döndürmek için fullName yöntemini değiştirin this
:
Örnek
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this;
}
}
// This will return [object Object] (the owner object)
myObject.fullName();
Nesne yöntemi olarak bir işlevi çağırmak, değerinin this
nesnenin kendisi olmasına neden olur.
Bir İşlev Oluşturucusu ile bir İşlevi Çağırmak
Anahtar kelimeden önce bir işlev çağrısı new
geliyorsa, bu bir yapıcı çağrısıdır.
Görünüşe göre yeni bir işlev yaratıyorsunuz, ancak JavaScript işlevleri nesneler olduğundan, aslında yeni bir nesne yaratıyorsunuz:
Örnek
// This is a function constructor:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// This creates a new object
const myObj = new myFunction("John", "Doe");
// This will return "John"
myObj.firstName;
Bir yapıcı çağırma, yeni bir nesne oluşturur. Yeni nesne, yapıcısından özellikleri ve yöntemleri devralır.
Yapıcıdaki this
anahtar kelimenin bir değeri yok.
Değeri this
, işlev çağrıldığında oluşturulan yeni nesne olacaktır.