2013-10-22 41 views
0

我見過構建大型共享js文檔的幾種方法,我試圖理解遵循哪種方法。Javascript文檔結構Obj vs Func

我在Web項目中看到的一種涉及大量無關函數調用的方法是將每個調用定義爲共享父對象的方法(最小化全局和模擬命名空間)。

var parentObj = { 
    someMethod: function() { 
     $('.slideshow').animate({}); 
    }, 
    someOtherMethod: function() { 
     $('.accordian').on('click', function() { 
      console.log('etc, etc'); 
     }); 
    } 
}; 

我見過的另一種方法是使用父函數;

var parentFunc = function() { 
    this.someMethod = function() { 
     $('.slideshow').animate({}); 
    }; 

    this.someOtherMethod = function() { 
     $('.accordian').on('click', function() { 
      console.log('etc, etc'); 
     }); 
    }; 
}; 

然後在需要時初始化所需的方法;

$(document).ready(function() { 
    parentObj.someMethod(); 
    parentFunc.someOtherMethod(); 
}); 

問題:

是否有構建一個JavaScript文件的這兩種方式之間的任何操作上的差異?

其中一個比另一個更好(或更普遍接受)的做法嗎?

在代碼重用方面,使用其中一個(例如實例化方法的新實例,例如第二個幻燈片或手風琴)是否有優勢?

回答

1

從運營方面來看,它們是相同的。每次調用函數時,都會編譯這兩個子函數。

也有Prototype方式 - 在這種情況下聲明,函數被聲明一次並分配給其他函數。

從性能方面來看,Prototype方式是比較合適的方式。