백본의 소스를 읽는 동안 나는 어떤 객체 지향을 궁금해했다. http://backbonejs.org/docs/backbone.html (검색 "this.parse (속성);")this.parse (attributes); 백본의 소스 코드에서
Backbone.Model = function(attributes, options) {
var defaults;
attributes || (attributes = {});
console.log('attributes : ', attributes);
if (options && options.parse) {
//LOOK HERE
attributes = this.parse(attributes);
}
if (defaults = getValue(this, 'defaults')) {
attributes = _.extend({}, defaults, attributes);
}
if (options && options.collection) this.collection = options.collection;
this.attributes = {};
this._escapedAttributes = {};
this.cid = _.uniqueId('c');
if (!this.set(attributes, {silent: true})) {
throw new Error("Can't create an invalid model");
}
delete this._changed;
this._previousAttributes = _.clone(this.attributes);
this.initialize.apply(this, arguments);
};
프로토 타입에 구문 분석을 어떻게 사용할 수 있습니까? 방법이 _.extend 나중에 정의 (Backbone.Model.prototype, Backbone.Events, {누군가에 의해
new Backbone.Model
을하고 때 실행되는 것입니다 기능에서 볼
표현식은 실제로 실행될 때까지 평가되지 않습니다. 함수 내에서 함수가 처음 정의 될 때 평가되지 않고 실행될 때만 평가됩니다. 간단한 예 : http://jsfiddle.net/tUyhL/2/ – McGarnagle
모두에게 감사드립니다. 어쨌든이 메서드는 매개 변수를 반환하기 만하기 때문에이 메서드는 재정의해야합니다. parse : function (resp, xhr) {return resp; }, – Olivvv