我意识到可以通过编写以下内容轻松地将函数复制到新变量:
var wu = function() {
// do stuff
)
var tang = wu;
var bee = tang;
// etc
并且以这种方式可以通过理论上无限多的名称。我也意识到在上面的例子中,我可以说var wu = undefined
并且引用将被删除,但我想知道函数是否可以重命名自己作为其自身上下文的一部分?意思,我可以写:
function wuTang() {
// do stuff
// rename self
}
wuTang(); // runs successfully
wuTang(); // returns undefined
我并不担心创建新名称的过程,我只是想知道这是否可行。我不想调用第二个函数来重命名原始函数,我希望函数重命名自己,这样它只能被给定的名称一次调用。
答案 0 :(得分:2)
window.wutang = function() {
var f = window.wutang;
window.watang = f;
delete window.wutang;
}
这应该足以“重命名”自己:)
wutang(); // ok
wutang(); // fail
watang(); // should kill self :)