μ΄ λ°μ΄μ¬λ¦°μ μ°Έμ‘°νμμμ€ : http://jsfiddle.net/XgPyH/31/
κ·Έλμ μ°λ¦¬λ itemViewμ μΈμ€ν΄μ€ 10 κ°λ₯Ό λ§λ€κ³ addItem λ©μλλ₯Ό νΈμΆνμ¬ κ° itemViewμ 10 κ°μ νλͺ©μ μΆκ°ν©λλ€. κ° itemViewμλ itemArray μμ±μ 10 κ°μ νλͺ©μ΄ μμ΄μΌν©λλ€. κ·Έλ¬λ λμ itemArray μμ±μ 곡μ νκ³ 100 κ°μ νλͺ©μ ν¬ν¨ν©λλ€.
λ¬Έμ λ backbone.viewκ° μμ±μμμ μ¬μ©μ μ μ μμ±μ μ¬μ€μ νμ§ μκΈ° λλ¬ΈμΌ μ μμ΅λλ€.
λλ¬Έμ μ, itemArray
μ ν μμ±μ
λλ€ itemView
νλ‘ν νμ
, κ·Έκ²μμ λͺ¨λ μΈμ€ν΄μ€μμ 곡μ itemView
. μΈμ€ν΄μ€κ° μμ μ itemArray
λ₯Ό κ°λλ‘νλ €λ©΄ initialize
λλ μμ±μμμ μ€μ ν΄μΌν©λλ€.
var ItemView = Backbone.View.extend({
initialize: function() {
this.itemArray = [];
},
...
});
λ€μμ λΉμ μ΄ μ€λͺ ν κ²μ μννλ λ°μ΄μ¬λ¦°μ λλ€. http://jsfiddle.net/XgPyH/32/
μλ νμΈμ @braddunbar ,
ν΄κ²° λ°©λ²μΌλ‘ κ²μ ν κ²κ³Ό λμΌν μ루μ μ μ΄λ―Έ μ¬μ©νμ§λ§ κ·Έλ κ² ν νμκ°μλ κ² κ°μ΅λλ€. κ½€ νΌλμ€λ¬μ΄ νλμ΄λΌκ³ μκ°νμ§ μμ΅λκΉ?
νλ‘ν νμ μμ μ¬μ©νλ μ©λμ λν΄ μ€λͺ ν΄ μ£Όμκ² μ΅λκΉ? (μ λ μ΄ν΄κ° μ λΌμ. νμ¬ κ΅¬νμ΄ νλ Έλ€κ³ λ§νλ κ²μ΄ μλλλ€. μ΄ν΄λ₯Ό λκΈ° μν΄ μ€λͺ μνλ €κ³ ν©λλ€.)
μ°λ¦¬λ μ’ μ’ @spawnedc κ° κ·Έμ λ°μ΄μ¬λ¦°μμ μ¬μ©ν λ°©μμΌλ‘ λͺ¨λ λ·°μ μμ±μ μ§μ ν©λλ€. κ·Έ
μμ μ±μμ보기 μμ±μ λκ°μ λ°©μμΌλ‘ μ§μ λ©λλ€ (Todo.js μ°Έμ‘°). "ν νλ¦Ώ"λ³μλ λμΌν λ°©μμΌλ‘ μ§μ λμ§λ§ λ¬Όλ‘ λ³κ²½λμ§ μλ λ¬Έμμ΄μ΄κΈ° λλ¬Έμ μ΄λ¬ν μ’ λ₯μ λ¬Έμ λ₯Ό λ³Ό μ μμ΅λλ€.
λμ λ·° μμ±μ μ§μ νλ μ¬λ°λ₯Έ λ°©λ²μ 무μμ λκΉ? νμ€ν init λ©μλμμ λͺ¨λ μ¬μ μν΄μΌνλ κ²½μ°κ° μλλλ€ ...?
νλ‘ν νμ μ μ¬μ©νλ μ©λμ λν΄ μ€λͺ ν΄ μ£Όμκ² μ΅λκΉ?
νλ‘ν νμ μ λ³κ²½ κ°λ₯ν μμ± (λ°°μ΄, ν΄μ λ±)μ λ°°μΉνλ κ²μ λ΄ κ²½νμμ κ±°μ μ μ©νμ§ μμ΅λλ€ (μΌλΆ μ¬λ‘κ° μλ€κ³ νμ νμ§λ§).
λμ λ·° μμ±μ μ§μ νλ μ¬λ°λ₯Έ λ°©λ²μ 무μμ λκΉ? νμ€ν init λ©μλμμ λͺ¨λ μ¬μ μν΄μΌνλ κ²½μ°κ° μλλλ€ ...?
μ, ν΄λμ€ / μμ±μμ κ° μΈμ€ν΄μ€μμ λ³κ²½ κ°λ₯ν κ°μΌλ‘ μμ±μ μ€μ νλ €λ©΄ μμ±μ (λλμ΄ κ²½μ° μμ±μμμ νΈμΆλλ initialize
)μμ μ€μ ν΄μΌν©λλ€.
μλ₯Ό λ€μ΄, Backboneμ΄ Backbone.Model
μΈμ€ν΄μ€μμ μμ± μ
@braddunbar _new_ μΈμ€ν΄μ€λ₯Ό μμ±νλ©΄ _all_ μμ±μ΄ _brand new_ μΈμ€ν΄μ€
μλ νμΈμ @braddunbar ,
νλ‘ν νμ μ λ³κ²½ κ°λ₯ν μμ± (λ°°μ΄, ν΄μ λ±)μ λ°°μΉνλ κ²μ λ΄ κ²½νμμ κ±°μ μ μ©νμ§ μμ΅λλ€ (μΌλΆ μ¬λ‘κ° μλ€κ³ νμ νμ§λ§).
μ΄ κ²½μ° Bacboneμ΄ itemArrayλ‘ μ νννλ μΌμ΄ μλλκΉ? itemArrayκ° νλ‘ν νμ μ μμΌλ―λ‘ μ°λ¦¬κ° κ²½ννκ³ μλ λμμ΄ λ°μνκ³ μμ΅λκΉ?
@spawnedc λ§μ§λ§ μ§μ μ 100 % λμν©λλ€. "νμ "λ·°μ μΈμ€ν΄μ€κ°μ μ΄λ€ μμ±λ 곡μ λ κ²μΌλ‘ κΈ°λνμ§ μμ΅λλ€.
μ€μ λ‘ μμ±μμμ μ¬μ€μ λμ§ μλ ν μμ±μ μ¬μ€μ λμ§ μμ΅λλ€. μ΄λ€μ νμ λμΌν μμ±μμ μν΄ μμ± λ λͺ¨λ μΈμ€ν΄μ€κ° 곡μ νλ λμΌν νλ‘ν νμ μμ±μ λλ€.
var A = function(){};
var a = new A();
var B = function(){};
B.prototype = a;
a.constructor = B;
var b1 = new B();
var b2 = new B();
console.log(b1.foo); // undefined
console.log(b2.foo); // undefined
a.foo = [1];
console.log(b1.foo); // [1]
console.log(b2.foo); // [1]
console.log(b1.foo === b2.foo); // true
κ΄μ¬μ΄ μμΌμλ©΄ μ¬κΈ°μ νλ₯ν μ€λͺ μ΄
μ΄ κ²½μ° Bacboneμ΄ itemArrayλ‘ μ νννλ μΌμ΄ μλλκΉ? itemArrayκ° νλ‘ν νμ μ μμΌλ―λ‘ μ°λ¦¬κ° κ²½ννκ³ μλ λμμ΄ λ°μνκ³ μμ΅λκΉ?
λ°λ‘ κ·Έκ±°μ£ . κ·Έλμ νλ‘ν νμ
μμ± λμ initialize
itemArray
λ₯Ό λ§λλ κ²μ΄ μ’μ΅λλ€.
@braddunbar μ€λͺ κ³Ό λ§ν¬λ₯Ό λ³΄λ΄ μ£Όμ μ κ°μ¬ν©λλ€-ννΈμΌλ‘λ μ¬μ ν μ΄μν (κ·Έλ¦¬κ³ μμμΉ λͺ»ν) λμμ΄μ§λ§ λ€λ₯Έ ννΈμΌλ‘λ λ·°κ°μ μμ±μ 곡μ νλ κ²μ΄ ν©λ¦¬μ μ λλ€.
λλ JavaScript Garden κΈ°μ¬λ₯Ό μ½κ³ λͺ¨λ κ²μ΄ λͺ νν΄μ§ κ²μ΄λΌκ³ νμ ν©λλ€. :).
κ°μ₯ μ μ©ν λκΈ
λλ¬Έμ μ,
itemArray
μ ν μμ±μ λλ€itemView
νλ‘ν νμ , κ·Έκ²μμ λͺ¨λ μΈμ€ν΄μ€μμ 곡μitemView
. μΈμ€ν΄μ€κ° μμ μitemArray
λ₯Ό κ°λλ‘νλ €λ©΄initialize
λλ μμ±μμμ μ€μ ν΄μΌν©λλ€.