2012-07-05 183 views
0

我初學朝着Backbone.js的。這是我正在努力的方向。幾個問題

http://jsfiddle.net/pW3SZ/

Person = Backbone.Model.extend({ 
     defaults: { 
      name: 'Fetus', 
      age: 0, 
      children: [] 
     }, 
     initialize: function(){ 
      //alert("Welcome to this world"); 
     } 
}); 

var person = new Person({name: 'John', age: '100'}); 
delete person; 

//var person = new Person; 
//person.set({name: 'Cooper', age: '90'}); 

alert(person.get('name') + ' ' + person.get('age')); 
  1. 我沒有刪除我的個人情況,但是當我提醒爲什麼我得到約翰 和100,而不是默認值。
  2. 是什麼初始化和構造函數之間的區別。它做同樣的工作嗎?
  3. 內存的哪些部分是否存儲這些值。我知道這可能是堆棧,但有人可以對此有所洞察。

回答

1

-1 "The delete operator deletes an object, an object's property, or an element at a specified index in an array."

基本上是以delete運算符適用於數組,如果你有這樣的事情fiddle。檢查你的js控制檯,它會拋出一個錯誤,因爲刪除操作符已經從數組中刪除了該項目。

-2 Backbone.js的,你可以把初始化-function像一個構造函數。您可以使用它來處理在初始化時交給對象的參數,其他方式則採用默認方式。

對於-3我沒有答案。

希望這(部分)幫助!

1
  1. 和3.真的,你沒有。 delete從對象或元素中刪除屬性 數組。您不能刪除javascript對象,只刪除指向此對象的指針 ,並等待GC清除內存。與person = undefined;更換 delete person;刪除指針

  2. Person.prototype.constructor是一個真正的構造,其中骨幹做它自己的內在的東西。最後,它運行Person.prototype.initilalize - 地方放你on_create邏輯