JavaScript函数可以重命名吗?

时间:2018-06-12 11:09:44

标签: javascript

我意识到可以通过编写以下内容轻松地将函数复制到新变量:

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 

我并不担心创建新名称的过程,我只是想知道这是否可行。我不想调用第二个函数来重命名原始函数,我希望函数重命名自己,这样它只能被给定的名称一次调用。

1 个答案:

答案 0 :(得分:2)

window.wutang = function() {
  var f = window.wutang;
  window.watang = f;
  delete window.wutang;
}

这应该足以“重命名”自己:)

wutang(); // ok
wutang(); // fail
watang(); // should kill self :)