2013-04-13 13 views

cevap

13

Model.extend,

Süper bir kenara ayırın: JavaScript, numaralı telefonu aramak için basit bir yol sağlamaz - aynı adın işlevi, prototip zincirinde daha yüksek olarak tanımlanır. her zaman sınıf hiyerarşisinde

, this.constructor: Eğer seti gibi bir çekirdek işlevini geçersiz veya kaydetmek ve üst nesnenin uygulanmasını çağırmak için isterseniz, açıkça, bu satırlar boyunca, diyoruz gerekecek nestedNestedChildView yapıcıya eşittir, yani this.constructor.__super__.initializenestedChildView.initialize olacaktır ve böylece bir döngü olacaktır. Bir test için bkz. http://jsfiddle.net/X5yBb/.

Açıkça sınıf __super__ (http://jsfiddle.net/X5yBb/1/)

var nestedChildView = parentView.extend({ 
    initialize: function(){ 
    console.log('nestedChildView'); 
    nestedChildView.__super__.initialize.apply(this);   
    } 
}); 

var nestedNestedChildView = nestedChildView.extend({ 
    initialize: function(){ 
    console.log('nestedNestedChildView'); 
    nestedNestedChildView.__super__.initialize.apply(this);   
    } 
}); 

arayabilir veya dilerseniz prototip zincirinde (http://jsfiddle.net/X5yBb/2/) yöntemlerini diyebiliriz:

var nestedChildView = parentView.extend({ 
    initialize: function(){ 
    console.log('nestedChildView'); 
    parentView.prototype.initialize.apply(this);   
    } 
}); 

var nestedNestedChildView = nestedChildView.extend({ 
    initialize: function(){ 
    console.log('nestedNestedChildView'); 
    nestedChildView.prototype.initialize.apply(this);   
    } 
}); 

ileri bilgi için Accessing parent class in Backbone ve Super in Backbone görün Konuyla ilgili.

+0

Cevabınız için teşekkür ederiz. – Erik