这就是我现在正在做的。varfoo=function(){varx=someComplicatedComputationThatMayTakeMoreTime();this.foo=function(){returnx;};returnx;}它有效,但前提是foo像这样作为函数调用foo();但是如果我想把它当作一个有值的普通变量来调用呢?我可以将代码修改为varfoo=function(){varx=someComplicatedComputationThatMayTakeMoreTime();this.foo=x;returnx;}这将允许我仅将其作为函数调用一次,然后作为常规变量