可能重复:
为什么自定义函数引用一直指向旧函数
我对 javascript 引用行为感到很困惑。请看一下这段代码,很清楚 javscript 在传递引用时不会创建新的内存位置。
Human.prototype = Monkey.prototype;
Human.prototype.name = "human";
Human.prototype.work = "love";
Joker.prototype = Human.prototype;
Joker.prototype.name = "joker";
Joker.prototype.act = "awesome";
joker = new Joker ();
human = new Human ();
human.name = 'joker';
现在看看这个,很明显 javascript 正在为 scareMe 和恶作剧创建 2 个单独的内存位置
var scareMe = function () {
alert("Boo!");
scareMe = function () {
alert("Double boo!");
};
};
var prank = scareMe;
prank(); // "Boo!"
prank(); // "Boo!"
scareMe(); // "Double boo!"
请帮助我理解这种行为。