要删除的选项
Alternatives to delete?
我已经看了很多关于JavaScript严格模式的博客文章、文档等。
我注意到在delete关键字上有很多限制。我甚至不知道你是否能称之为限制。似乎delete
不再工作了。
我喜欢使用严格模式。这是个好主意。但我也认为删除是个好主意。
是否有其他方法来删除"一个变量?
您不能使用delete
变量
delete
用于删除对象的属性。
delete foo.a
将从对象foo
中移除属性"a"
。
为什么需要从作用域中删除局部变量?您可以将变量设置为undefined
(function(undefined) {
// undefined is undefined.
})();
(function() {
var undefined; // undefined is undefined
})();
另一种检查未定义的方法是执行foo === void 0
,因为void
是一个操作符,它运行其后的表达式并返回undefined
。
将变量设置为null
如何?一旦将变量设置为null
, JavaScript垃圾收集器将在下次运行时删除所有未引用的变量。
HTH .
EDIT:正如@chris Buckler在评论中提到的,这不能在全局范围内完成,因为全局变量永远不会被垃圾收集。
正如其他人暗示的那样,您不应该真正需要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中有属性?
相关文章:
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 从“新建”选项卡中的“访问次数最多”部分删除网站
- 带有预览和删除选项的图像上传-Javascript/Jquery
- jQuery-检测选择对象是否添加或删除了选项
- 从dojo comboBox中删除选项
- 选择选项是添加或删除事件
- 删除“;选择“;从下拉菜单的选项中选择
- 使用JavaScript删除多个select选项
- 如何使用jstree删除上下文菜单中的编辑选项
- 从选项选择中删除值
- 在 IE 中从 DOM 中删除选项时,滚动选择元素会跳到顶部
- 多个<选择>使用选择,选项删除(已选择)
- jquery mobile;选择“;确实't附加或删除“t”;选项”;
- 使用jquery如何自动删除下拉列表中的第一个空白选项(如果它依赖于另一个选项)
- 使用ng重复或ng选项和删除空白选项选择长方体角度
- 删除基于先前下拉列表选择的“选择下拉列表”选项
- 如何从选择 jsp 上的映射中删除选项
- Magento网站-按选项排序:上下箭头与排序数据绑定,只需删除上下箭头即可
- 如何使用fine Uploader通过删除选项将上传的文件名传递到服务器端
- 选择选项删除功能