如果我有
var foo = function() {
console.log('foo');
}, bar = foo;
并致电bar()
,控制台会记录foo
。如果那时,我做
foo = function() {
console.log('not foo');
}
并致电bar()
,控制台仍会记录foo
。我怎么能绕过这个?
答案 0 :(得分:3)
var foo = function () { console.log("foo"); }
var bar = function () { foo(); }
bar();
var foo = function () { console.log("qux"); }
bar();
答案 1 :(得分:2)
我会创建一个对象并创建一个我想复制该对象属性的函数:
var obj = {
bar : function(){ alert 'bar'; }
},
obj2 = obj;
obj.bar = function(){ alert 'foo'; };
然后
obj2.bar()
会输出'foo';