Javascript 删除机制

标签 javascript

<分区>

Possible Duplicate:
the delete operator in javascript

我有以下代码。我不明白为什么第二次删除失败。

此外,我注意到 foo 函数在我为 foo 分配了其他内容后仍然存在。

有没有办法引用函数?
(假设我想要一个 bar2=foo() 表现得像 bar 赋值)。

> function foo(){var bar=0; return function(){return bar++;}}
undefined
> bar = foo()
function () {return bar++;}
> bar()
0
> bar()
1
> delete bar
true
> foo = foo()
function () {return bar++;}
> foo()
0
> foo()
1
> delete foo
false

谢谢

最佳答案

delete 仅适用于可删除的属性。函数声明如下:

function f(){
}

不可删除。

尝试对原始函数声明使用此语法:

foo = function (){var bar=0; return function(){return bar++;}}

在这里查看:http://jsfiddle.net/Sxnaw/

您可以阅读这篇文章以深入了解可删除和不可删除的属性:http://perfectionkills.com/understanding-delete/

关于Javascript 删除机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439810/

相关文章:

javascript - 自定义方法以及构造函数和原型(prototype)在 web-dev 中的用处

Javascript - 为什么方法变量在回调中仍然存在?

javascript - javascript 中的销毁函数

javascript - 如何更新 Mongoose 数据库中的数组元素

javascript - 循环遍历 getElementsByClassName

javascript - 禁用桌面jquery

javascript - 如何在弹出窗口中打开弹出窗口?

javascript - Meteor - onCreateUser Ajax 回调

javascript - 只用 javascript 做不到的事情,而使用 flash 却可以

javascript - 什么是 `emit` javascript 函数?