我在“javascript 设计模式”中找到了这个示例,并与以下代码的行为相混淆
这段代码创建了一个自定义函数:
var scareMe = function () {
alert("Boo!");
scareMe = function () {
alert("Double boo!");
};
};
现在我们将它引用到另一个变量
var prank = scareMe;
令人困惑的部分是,当我打电话给恶作剧时,它应该更新 scareMe,当我打电话给它时,它应该提醒“双重嘘声”,不是吗?
但结果是
prank(); // "Boo!"
prank(); // "Boo!"
如果我检查了 scareMe 函数,它确实被重新定义了。
scareMe(); // Double boo!
恶作剧只是对scareMe的引用,为什么有区别?