En son web geliştirme öğreticiler
 

JavaScript İşlev Başlatma


JavaScript fonksiyonlarını 4 farklı şekilde çağrılabilir.

Her yöntem nasıl farklılık this başlatıldı.


this Kelime

JavaScript denilen şey ise this , o nesnedir "owns" cari kodu.

Değeri this bir fonksiyonu olarak kullanıldığında, bu amacı, "owns" bir işlev.

Not this değişken değildir. Bu bir anahtar kelimedir. Sen değerini değiştiremezsiniz this .


bir JavaScript Fonksiyonu Invoking

Zaten geldiğinde JavaScript işlevi içinde kod çalıştırır öğrendik "something" onu çağırır.

Fonksiyon tanımlandığı zaman işlev kodu çalıştırılmaz. Fonksiyon çağrıldığında O yürütülür.

Bazı insanlar terimi kullanmak " call a function " yerine " invoke a function " .

Ayrıca söylemek oldukça yaygındır "call upon a function" , "start a function" veya "execute a function" .

Bir JavaScript işlevi denir olmadan çağrılabildiğinden Bu eğitimde, çağırmak kullanacağız.


bir işlev olarak bir fonksiyonu çağıran

Örnek

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // myFunction(10, 2) will return 20
Kendin dene "

fonksiyonu üzerindeki herhangi bir nesneye ait değildir. Ama JavaScript hep varsayılan bir genel nesne yoktur.

HTML'de varsayılan küresel nesne HTML sayfası kendisi, yani yukarıdaki fonksiyon "belongs" HTML sayfasına.

Bir tarayıcıda sayfa nesne tarayıcı penceresidir. Yukarıdaki işlev otomatik bir pencere fonksiyonu olur.

myFunction() ve window. myFunction() window. myFunction() aynı işlevi:

Örnek

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // window.myFunction(10, 2) will also return 20
Kendin dene "

Bu yaygın bir bir JavaScript işlevi çağırmak için bir yol, ancak çok iyi bir uygulamadır.
Küresel değişkenler, yöntemler veya işlevleri kolayca küresel nesne ad çakışmalarını ve hatalar oluşturabilir.


Genel Nesne

Bir işlev sahibi nesne olmadan çağrıldığında, değeri this küresel nesne haline gelir.

Web tarayıcısında küresel nesne tarayıcı penceresidir.

Bu örnek, değeri olarak pencere nesnesi döndürür this :

Örnek

function myFunction() {
    return this;
}
myFunction();                // Will return the window object
Kendin dene "

Küresel bir fonksiyonu olarak bir fonksiyonu çağıran, değeri neden this küresel nesne olması.
Bir değişken olarak pencere nesnesini kullanarak kolayca programını çökmesine sebep olabilir.


Yöntemi Olarak Bir Fonksiyon çağırma

JavaScript'inizde nesne yöntemleri gibi işlev tanımlayabilirsiniz.

Aşağıdaki örnek, bir nesne oluşturur ( myObject ) iki özellik ile, ( firstName and lastName ) ve bir yöntem ( fullName ) :

Örnek

var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Will return "John Doe"
Kendin dene "

fullName yöntemi, bir fonksiyonudur. işlev nesnesinin aittir. myObject işlevinin sahibidir.

Denilen şey this , o nesnedir "owns" JavaScript kodu. Bu durumda değeri this olduğunu myObject .

Dene! Değişim fullName değerini döndürmek için yöntem this :

Örnek

var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Will return [object Object] (the owner object)
Kendin dene "

Bir amacı, bir yöntem olarak bir fonksiyonu çağıran, değeri olur this nesnenin kendisi için.


Bir Fonksiyon Oluşturucu ile bir fonksiyonu çağıran

Bir fonksiyon çağırma ile takip ediyorsa new anahtar kelime, bir yapıcı çağırma olduğunu.

Yeni bir işlev oluşturmak, ancak JavaScript fonksiyonları nesneleri olduğundan aslında yeni bir nesne oluşturmak gibi görünüyor:

Örnek

// This is a function constructor:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}

// This creates a new object
var x = new myFunction("John","Doe");
x.firstName;                             // Will return "John"
Kendin dene "

Bir yapıcı çağırma yeni bir nesne oluşturur. Yeni nesne kurucuda özellikleri ve yöntemleri devralır.

this yapıcı anahtar kelime bir değeri yoktur.
Değeri this işlev çağrıldığında oluşturulan yeni nesne olacak.


Bir İşlev Yöntemi ile bir fonksiyonu çağıran

JavaScript'inizde fonksiyonlar nesnelerdir. JavaScript fonksiyonları özellikleri ve yöntemleri vardır.

call() ve apply() önceden tanımlanmış JavaScript işlevi yöntemleridir. Her iki yöntem de bir fonksiyonu çağırmak için kullanılabilir, ve her iki yöntem de ilk parametre olarak sahibi nesne olması gerekir.

Örnek

function myFunction(a, b) {
    return a * b;
}
myObject = myFunction.call(myObject, 10, 2);     // Will return 20
Kendin dene "

Örnek

function myFunction(a, b) {
    return a * b;
}
myArray = [10, 2];
myObject = myFunction.apply(myObject, myArray);  // Will also return 20
Kendin dene "

Her iki yöntem de ilk argüman olarak bir sahibi nesnesi alır. Tek fark, bir call() ayrı olarak işlev bağımsız alır ve apply() , bir dizi işlevi argüman alır.

JavaScript Katı modda, birinci argüman değeri olur this argüman bir nesne olmasa bile, çağrılan işlev.

In "non-strict" ilk argüman değeri null veya tanımsız ise modunda, küresel nesne ile değiştirilir.

Ile call() veya apply() size değerini ayarlayabilirsiniz this ve varolan nesnenin yeni bir yöntem olarak bir işlevi çağırmak.