SORU
19 Mayıs 2009, Salı


Nasıl JavaScript bir ad alanı ilan muyum?

Nasıl nesneleri ve benim işlevler aynı adlı diğer nesneleri ve fonksiyonları üzerine değil JavaScript ile bir ad alanı oluşturabilirim? Aşağıdaki kullandım:

if (Foo == null || typeof(Foo) != "object") { var Foo = new Object();}

Bunu yapmanın daha zarif ya da kısa ve öz bir yolu var mı?

CEVAP
10 Mayıs 2011, Salı


Bu yaklaşım, Kurumsal bir WordPress kullanmak sitesinde, here kullanıyorum

İşte onların örneği, özel ve ortak özelliklerini ve işlevlerini bildirmek için nasıl gösteren. Her şey kendi kendine çalışan anonim bir fonksiyonu olarak yapılır.

(function( skillet, $, undefined ) {
    //Private Property
    var isHot = true;

    //Public Property
    skillet.ingredient = "Bacon Strips";

    //Public Method
    skillet.fry = function() {
        var oliveOil;

        addItem( "\t\n Butter \n\t" );
        addItem( oliveOil );
        console.log( "Frying "   skillet.ingredient );
    };

    //Private Method
    function addItem( item ) {
        if ( item !== undefined ) {
            console.log( "Adding "   $.trim(item) );
        }
    }    
}( window.skillet = window.skillet || {}, jQuery ));

Eğer öyleyse kamu üyeleri erişmek istiyorsanız, sadece tava giderdim.() kızartma veya tavada.malzemeler

Güzel olan ne şimdi tam olarak aynı sözdizimini kullanarak ad genişletebilirsiniz.

//Adding New Functionality to the Skillet
(function( skillet, $, undefined ) {
    //Private Property
    var amountOfGrease = "1 Cup";

    //Public Method
    skillet.toString = function() {
        console.log( skillet.quantity   " "   
                     skillet.ingredient   " & "   
                     amountOfGrease   " of Grease" );
        console.log( isHot ? "Hot" : "Cold" );
    };    
}( window.skillet = window.skillet || {}, jQuery ));

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • Drakinen

    Drakinen

    1 EYLÜL 2008
  • superflyy88

    superflyy88

    8 ŞUBAT 2009