2
在JavaScript中有很多不同的方法來設置一個方法,如按鈕點擊事件。在JavaScript中匿名方法的優點和缺點是什麼?
例如說你retreived輸入元件「按鈕」
function MyForm(){
//anonymous method
button.click = function(){ //work };
//private method
var handleClick = function() { // work };
button.click = handleClick;
//public method
button.click = outerClickHandle;
}
//public
function outerClickHandle(){
// work
}
//prototype
MyForm.prototype.outerClickProto(){
//work
}
當然一些更明顯的答案如封裝的期望當存在。並且,對於原型而言,每次都不需要重新創建該功能,這對性能有好處,但對於匿名方法而言,除了作爲一種好方法或寫腳本的流程之外,什麼是好的和壞的?
關於命名空間的一個非常好的觀點,我會牢記前進。 – tam 2012-02-03 05:09:30
匿名函數的另一個缺點是每次使用它的代碼運行時都會創建一個新函數,在某些情況下它根本沒有任何區別,但在其他情況下可能需要考慮性能方面的原因(例如,如果執行某些操作在一個循環中)。 – nnnnnn 2012-02-03 06:42:08
我會建議上面的答案被編輯,包括nnnnnn的提交,因爲功能和相關閉包消耗的內存可以變得顯着。匿名和私有方法分別爲一個對象和一個共享執行環境(閉包)模式化。公共方法不創建函數對象,它使用爲公共函數創建的函數對象。如果您打電話給MyForm一次,您將看不到差異,將其稱爲10,000次,您肯定會這樣做。 – chuckj 2012-02-03 07:54:39