SORU
1 ŞUBAT 2012, ÇARŞAMBA


yeni bir Omurga.() Model vs Omurga.Model.()uzatmak

JS ve Omurga yeniyim

Bu ikisi arasındaki fark nedir?

TestModel = new Backbone.Model({ title: "test title" })
TestModel = Backbone.Model.extend({ title: "test title" })

CEVAP
1 ŞUBAT 2012, ÇARŞAMBA


Kısa olarak nitelendirilebilecek olan temel bir fark var, "bir ev projesi ve evin kendisi arasındaki fark".

Uzman programcılar için sadece bunu söyleyebilirim"yeni bir Omurga.Model" döndürür bir nesne örneği, ama "Omurga.Model.uzatmak" yapıcı bir işlev verir

İLK olarak: yeni bir nesne (evi gibi)

TestModel = new Backbone.Model({ title: "test title" });

başka bir yerde tanımlanmış olan yeni bir Nesne oluşturun. Nesne "yerel olmayan tüm öğeleri" "doğal madde" tamsayılar gibi temel türleri, yani, karakter vb. bir dil, nereye olarak kabul edilebilir

Parantez içinde {} bazı değişken veya metodun değeri geçirir. Bu 'olan yeni bir nesne başka bir yerde tarif. oluşturmak için izin verir, çünkü Tomasz Nurkiewicz daha önce, bir kurucu olarak açıklandığı gibi, denir

Bilinen bir örnek vermek gerekirse: yazmak

myArray = new Array();

Başka bir yerde tanımlanmış olan yerel olmayan bir nesne olan yeni bir Dizi oluşturuyorsunuz demektir. de yazabilirsiniz:

myArray = new Array([1,2,3,4,5]);

Ve verilen sayılar ile bir dizi doldurur.

İKİNCİ: varolan bir nesnenin tanımını değiştir (house proje yani)

ile

TestModel = Backbone.Model.extend({ title: "test title" })

VM senin için çok basit bir şey diyorsun: "varsayılan olarak izin ver, sana bir obje çok güzel, ama daha fazla işlevleri/özellikleri uygulamak istiyorum". "" Yan bir nesne eklemek tanımını değiştirmek veya mevcut yöntem/özelliklerini geçersiz kılar. uzatmak bu kadar

Örnek: backbone.js güzel bir örnek koleksiyonu karşılaştırıcı işlevi tarafından verilir. Nesne tanımlama genişletirken, "sıralı düzende koleksiyonu korumak için kullanılır".

Örnek:

myCollection= Backbone.Collection.extend({
    comparator:function(){
       return item.get('name');
       }
    });

GENEL OLARAK

Ne beklenir '(=kullanma backbone.js gelişmekte olan çerçeve) ile belirli bir nesne (örneğin bir Görünüm) genişletmek için": . backboning zaman

window.ButtonView = Backbone.View.extend({
    btnText:'nothingByDefault',
    myNewMethod:function(){
       //do whatever you want, maybe do something triggered bby an event, for instance
       }
});

ve sonra bu kodu başka bir yerde, bir kez, parantez içinde de dahil olmak üzere işlemek istediğiniz her düğme için kullanın tüm değerleri nesneye vermek istiyorum

[...]
var submitBtn = new ButtonView({btnText:"SubmitMe!"}),
var cancelBtn = new ButtonView({btnText:"Erase All!"});

....Bu yardımcı olur umarım...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • julioissk84life

    julioissk84l

    18 ŞUBAT 2008
  • Rayone GB

    Rayone GB

    14 Temmuz 2007