Che*_*eso 3 javascript wsh activexobject jscript
在WSH中运行并创建对象的Javascript程序中,假设是Scripting.FileSystemObject或任意COM对象,我在完成它时是否需要将变量设置为null?例如,我建议这样做:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fileStream = fso.openTextFile(filename);
fso = null; // recommended? necessary?
... use fileStream here ...
fileStream.Close();
fileStream = null; // recommended? necessary?
Run Code Online (Sandbox Code Playgroud)
效果不同于让变量超出范围吗?
将null分配给对象变量将减少引用计数器,以便内存管理系统可以丢弃资源 - 只要它感觉像这样.当变量超出范围时,引用计数器将自动递减.因此,手动操作几乎在所有情况下都是浪费时间.
理论上,如果A在中间设置为null,则在其第一部分中使用大对象A而在第二部分中使用另一个大对象B的函数可以更有效.但由于这并没有迫使mms摧毁A,这种说法仍然是一种浪费.
如果你做一些花哨的课程设计,你可能会得到循环参考.然后用手打破圆圈可能是必要的 - 但是首先避免这样的循环会更好.
有传言称古代数据库访问对象存在可以通过切换变量来避免的错误.我不会将我的编程规则建立在这样的伏都教上.
(互联网上有大量的VBscript代码充满了"Set X = Nothing";当被问到时,作者倾向于谈论'习惯'和其他语言(C,C++))
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |