19

मुझे पता है कि रीढ़ की हड्डी अंडरस्कोर और jquery के आधार पर कुछ हद तक है। क्या नीचे दो पंक्तियों के बीच अंतर है?विस्तार() अंडरस्कोर बनाम रीढ़ की हड्डी का उपयोग कर

app.notifications = _.extend({}, Backbone.Events); 

और

app.notifications = Backbone.Events.extend({}); 

अगर वे कर रहे हैं नहीं ही, कैसे अलग है?

+1

यकीन है कि Backbone.Events.extend – jermel

+0

0.9.9 मौजूद नहीं है अब http://backbonejs.org/?0-9-9#changelog आप घटनाक्रम का विस्तार करने की अनुमति देता है –

उत्तर

33

Backbone.Events.extend मौजूद नहीं है, तो मैं इसके बजाय बैकबोन.मोडेल का उल्लेख करूंगा।

_.extend(target, mixin1, mixin2) लक्ष्य वस्तु

Backbone.Model.extend subclass जा रहा है Backbone.Model मूल रूप से एक निर्माता (समारोह) जिसका प्रोटोटाइप अपने प्रदान की गुण है बनाने में गुण कॉपी करने के लिए जा रहा है। जबकि _.extend एक संशोधित करता है यह, आप अपने नए वर्ग के उदाहरण बनाने के लिए

var Person = Backbone.Model.extend({name: 'yourName'}); 
var me = new Person(); 
alert(me.name); 

जबकि _.extend विफल हो जाएगा

var Person = _.extend({name: 'yourName'}, Backbone.Model); 
var me = new Person(); //error b/c Person is a regular object 
alert(me.name); 

कम Backbone.Model.extend में एक नया निर्माता (समारोह) बनाता है की अनुमति देगा मौजूदा वस्तु;

var modified = {}; 
alert(modified === _.extend(modified, Backbone.Model)); //true 
alert(modified === Backbone.Model.extend(modified)); //false 
संबंधित मुद्दे