js问题求解答

2025-05-13 18:18:56
推荐回答(3个)
回答(1):

我直接拷贝我前面回答的一模一样的这个问题。
如果是输出:最后执行的三个方法

foo.a(); // 6。因为代码执行顺序首先是foo.a=function(){……6}
obj.a(); // 2。为什么是2?因为new foo(),new的时候上下文(this)就是foo,this.a相等于foo.a,foo.a=funciont……2
foo.a(); // 1。这个1跟上面的是2的道理一样


如果不是,再追。

回答(2):

难道不是6?

回答(3):

不会,涉及到继承和prototype的问题,有点乱。