现在我的大部分工作都与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