SORU
27 Temmuz 2011, ÇARŞAMBA


Hangi yöne javascript bir nesne oluşturmak için en iyisidir? &nesne değişkeni önce quot;var" gerekli mi?

Şimdiye kadar JavaScript ile bir nesne oluşturmak için üç yolu gördüm, hangi yolun daha iyi bir nesne yaratmak için ve neden?

Ben de tüm bu örnekler, o "var", neden mal? önce kullanılmaz anahtar gördüm ""Özellikleri değişkenler olduğundan bahsetmişti. gibi bir özelliğin adını daha önce var bildirmek gerekmez mi

Bir şey daha sormayı unuttum:

Way2 ve way3 nesne adı büyük olduğu bir nesne adı için kullanmalıyız nesnenin adını daha düşük olduğu içinde way1...?

yolu 1

function person(fname,lname,age,eyecolor)
{
   this.firstname=fname;
   this.lastname=lname;
   this.age=age;
   this.eyecolor=eyecolor;
}

myFather=new person("John","Doe",50,"blue");
document.write(myFather.firstname   " is "   myFather.age   " years old.");

2

var Robot =
{
    metal: "Titanium",
    killAllHumans: function()
    {
        alert("Exterminate!");
    }
};
Robot.killAllHumans();

yol 3 (JavaScript nesneleri dizi sözdizimi kullanarak):

var NewObject = {};
NewObject['property1'] = value;
NewObject['property2'] = value;
NewObject['method'] = function(){ /* function code here */ }

CEVAP
27 Temmuz 2011, ÇARŞAMBA


Yokiyiyol, duruma göre değişir.

  • Kullanınyolu 1birden fazla benzer nesneleri oluşturmak istiyorsanız. Örnek, Person (büyük harfle adını başlatmak gerekir) deniryapıcı işlevi. Bu benzersınıflarOO diğer dillerde.
  • Kullanın2eğer sadece gerekiyorsabir nesnebir tür (tekil). Eğer başka birinden miras nesne istiyorsanız, o zaman yapıcı bir işlev olsa da kullanmak zorunda.
  • Kullanın3eğer nesnenin özelliklerini diğer özelliklerini bağlı olarak başlatmak istiyorsan eğer dinamik özellik adları varsa.

Güncelleme:Üçüncü yol için örnek istedi.

Bağımlı özellikleri:

Aşağıdaki this gibi çalışmıyordeğilbook bakın. Bir nesne değişmezi diğer özelliklerinin değerleri ile bir özellik başlatmak için bir yolu yoktur

var book = {
    price: somePrice * discount,
    pages: 500,
    pricePerPage: this.price / this.pages
};

bunun yerine, olabilir.

var book = {
    price: somePrice * discount,
    pages: 500
};
book.pricePerPage = book.price / book.pages;
// or book['pricePerPage'] = book.price / book.pages;

Dinamik özellik adları:

Eğer özellik adı bazı değişken depolanan veya bazı ifade ile oluşturulur, sonra köşeli parantez açıklaması kullanarak vardır:

var name = 'propertyName';

// the property will be `name`, not `propertyName`
var obj = {
    name: 42
}; 

// same here
obj.name = 42;

// this works, it will set `propertyName`
obj[name] = 42;

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • RawBrahs

    RawBrahs

    28 Aralık 2010