19

백본은 밑줄과 jquery에 따라 다소 다릅니다. 아래의 두 줄 사이에 차이점이 있습니까? 그들이 하지 같은, 어떻게 다른 경우밑줄과 백본을 사용하는 extend()

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가 존재하지 않으므로 이므로 대신 Backbone.Model을 참조하겠습니다.

_.extend(target, mixin1, mixin2)

Backbone.Model.extend이 Backbone.Model는 기본적으로 누구의 프로토 타입 당신의 제공 속성이 생성자 (함수)를 만들 subclass로가는 대상 객체에 속성을 복사하는 것입니다. _.extend이 수정하면서이 짧은 Backbone.Model.extend에서

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

새로운 생성자 (기능)을 생성 실패

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

_.extend 동안 새 클래스의 인스턴스를 만들 수 있습니다 기존 개체;

var modified = {}; 
alert(modified === _.extend(modified, Backbone.Model)); //true 
alert(modified === Backbone.Model.extend(modified)); //false