替代删除吗?

我一直在寻找通过大量的博客文章,文档等有关JavaScript的严格模式。

我注意到,有很多的删除关键字限制。 我甚至不知道,如果你可以打电话给他们的限制。 好像delete只是不再起作用。

我喜欢使用严格模式。 这是一个好主意。 但我也认为删除是一个好主意。

是否有任何其他办法“删除”一个变量,还是我只是拧?

--------------解决方案-------------

如何只设置你的变量null ? 一旦您设置的变量null时,JavaScript垃圾收集器会在删除下次运行任何未引用变量。

HTH。

编辑:由于@克里斯巴克勒在评论中提到的,这不能在全局范围内进行,如全局变量永远不会被垃圾收集。

你不delete的变量。

delete被用来从一个对象中删除一个属性。

delete foo.a将删除属性"a"从对象foo

为什么你需要从范围中删除一个局部变量? 你可以只设置变量为undefined

(function(undefined) {
// undefined is undefined.
})();

(function() {
var undefined; // undefined is undefined
})();

检查反对票未定义的另一种方法将做foo === void 0void是它运行它后面的表达,并返回操作者undefined 。 这是一个聪明的把戏。

正如其他的影射,你永远不应该真的需要delete的变量。 这听起来更像是不能正常控制范围的问题。 如果你把你的变量函数范围,它们将被从内存中,一旦他们不再被引用释放。

你有比全球其他的另一全局命名空间window空间? 或许,这将有利于你有类似的东西,造成这种情况:

(function(global) {

var Application = {};

Application.config = { /* config stuff */ };

global.Application = Application;

})(window);

// if you need to remove config, you can remove it from
// your object and not the window object:
delete Application.config;

对于删除和未定义的JS真正深入了解:

http://perfectionkills.com/understanding-delete/

http://scottdowne.wordpress.com/2010/11/28/javascript-typeof-undefined-vs-undefined/

我如何检查对象是否在JavaScript中的属性?

分类:JavaScript的 时间:2015-03-15 人气:0
本文关键词: JavaScript的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.294 (s). 10 q(s)