在以下情况下,我感到困惑:
function foo() {
}
foo.prototype.bar1 = function() {
console.log(this); // shows "Window"!!
}
foo.prototype.bar2 = function(func) {
func();
}
var f = new foo();
f.bar2(f.bar1);
console.log(this) 的结果如何/为什么会是“Window”?我想不管你如何在这里调用一个类的公共函数,“this”应该总是指“foo”。
还有什么是避免这种错误的正确方法?
谢谢