我直接拷贝我前面回答的一模一样的这个问题。如果是输出:最后执行的三个方法
foo.a(); // 6。因为代码执行顺序首先是foo.a=function(){……6}obj.a(); // 2。为什么是2?因为new foo(),new的时候上下文(this)就是foo,this.a相等于foo.a,foo.a=funciont……2foo.a(); // 1。这个1跟上面的是2的道理一样
如果不是,再追。
难道不是6?
不会,涉及到继承和prototype的问题,有点乱。