現在我的大部分工作都與js開發有關。將創建多少個內部函數副本
但是我突然發現我對一些問題感到困惑。
檢查這個代碼(我添加一個方法到自定義類):
MyCustomClass.prototype.fun=function(xx){
this.options={.....}
function innerFun01(){}
function innerFun02(){}
}
現在,使用它。
var mcc=new MyCustomClass();
mcc.fun(xxxx);
var mcc2=new MyCustomClass();
mcc2.fun(xxxx);
現在,我想知道在內存中會創建多少個函數「innerFun01」和「innerFun02」的副本?
我真的很困惑。
這是浪費內存嗎?任何想法改變他們?但我不想在外面定義它們,因爲我不想公開它們。 – hguser
這不是真的浪費內存。他們得到實例化,但在方法「樂趣」完成運行後拋出。 JavaScript垃圾回收器很快就會出現並收集起來並拋出。 – Stephen
Erlang的傑出人物Joe Armstrong通過敦促開發人員「儘可能寫出最美的代碼」來回應關於該語言問題的擔憂。編寫*算法*聲音的代碼,只在極端(不太可能)的情況下擔心這種情況。 – Pointy